星期一, 10月 21, 2019

AIX Shell Script 排程作業-每月最後一天執行範例

AIX Crontab job 每月最後一天執行範例

在 AIX的工作排程管理上,我們經常使用 crontab管理排程作業。
這裡遇到一個問題是,若我們希望月結時例行性去執行某一作業應該怎麼做呢?
(月結:是指會計每月最後一天的月底結算)
因為不同的月份會有不同的天數,當碰到2月閏月時也可能出現2月29日。
分享下面程式搭配 crontab job 的設定來處理此問題:

執行步驟:

Step1.設定 AIX下的 crontab Job

AIX 下執行 crontab  -e  (這邊使用範例是 AIX 7.1版本)

因為月底有可能是 28-31號,故我們讓程式在 28-31日時去執行判斷該天是否為月底。

lastdayofmonth

再下「wq! 」存檔離開,再使用 「crontab -l」確認一下是否有存檔成功。

Step2.設定AIX的Shell Script檔

Shell Script部份如下:
請注意紅色部份請替換成你要執行的作業

#!/usr/bin/ksh
#this script is used to start the xxx in the last day of every month
ym=`date +%m" "%Y`
if [ `date +%d` = `cal $ym|xargs|awk '{print $NF}'` ]
then
  /usr/bin/su - sapadm -c "stopsap; startsap" > /dev/null <-這邊請替換你要執行的作業
fi

將你的程式存成 lastdayofmonth.sh 搭配 crontab 路徑去放置,這邊範例是放在 / 下
注意一下權限。

lastdayofmonth-auth

下載 Script範例 👉 lastdayofmonth.sh

延伸閱讀:

👉 IBM HMC Console 登出作業方式

👉 如何解决IBM AIX PowerPath xcryptd 進程導致高CPU問題

👉 AIX NFS 異常處理 | access denied

 

沒有留言:

張貼留言