1. 程式人生 > >crontab每月最後一天執行

crontab每月最後一天執行

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

                

如何設定crontab在每月最後一天執行一種方法:
for Linux
 0 8 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && (shell script)
 for other Unix,BSD
 0 8 28-31 * * [ `echo \`cal\` | awk '{print $NF}'` -eq 1 ] && (shell script)

另一種方法:
 單獨靠crontab判斷比較複雜,所以把判斷部分寫到執行指令碼中
#!/bin/bash
 today=`date +%d`
 last_day=`cal | xargs | awk '{print $NF}'`
 if [ "$today" != "$last_day" ];then  
  exit 1
 fi
 ....  # other codes start from here


   通過指令碼實現的:
crontab裡設定一條:
0 12 28-31 * * sh /

tmp/start.sh
start.sh 指令碼如下:
******************************************************************************
#!/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
sh yourscripts
fi
********************************************************************************

     原理是每月的最後幾天(28號到31號)定時執行指令碼start.sh來判斷當天是否是本月最後一天,如果是執行 yourscripts,不是則退出。

這是五年前為了完成一個特定審計而研究的,當時也是必須在每月的最後一天執行。希望今天仍舊能夠幫到你:)


詳細請參考:http://www.codesky.net/article/201109/133201.html

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述