crontab每月最後一天執行
如何設定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,不是則退出。
這是五年前為了完成一個特定審計而研究的,當時也是必須在每月的最後一天執行。希望今天仍舊能夠幫到你:)
相關文章
- SHELL指令碼每月最後一天判斷指令碼
- 函式: 獲得每月的最後一天函式
- crontab執行phpPHP
- crontab不執行
- crontab異常:shell下可以執行命令,執行crontab卻報錯
- crontab執行shell指令碼指令碼
- crontab 每隔幾秒執行
- crontab的執行問題
- Ubuentu crontab執行scala不執行問題
- Linux crontab 未執行排查Linux
- Linux crontab 沒有執行Linux
- 自動執行任務crontab
- Oracle 取本週第一天,最後一天Oracle
- UNIX crontab自動執行指令碼指令碼
- 執行crontab最好的時間(轉)
- Crontab 任務不執行問題
- 安裝ffmpeg和crontab執行ffmpeg
- crontab無法執行perl指令碼 手工卻成功執行指令碼
- js 獲取某月第一天和最後一天JS
- JavaScript 獲取月份最後一天日期JavaScript
- script取一個月的最後一天
- Debian的定時執行命令Crontab
- 使用CRONTAB呼叫shell指令碼執行EXP指令碼
- linux下crontab 不能執行的原因Linux
- 2018最後一天深夜總結
- GopherChina 大會早鳥票最後一天Go
- C#獲取當月第一天和最後一天C#
- crontab定期執行命令詳解,以及例項
- VI 跳到最後一行和跳到最後一行的最後一個字元字元
- shell 檢測 pm2 是否執行 frp 相關程序 沒有執行執行 crontabFRP
- VI操作--跳到最後一行和跳到最後一行的最後一個字元字元
- JavaScript獲取每個月最後一天的日期JavaScript
- 2017最後一天的學習-TensorFlow
- sqlserver時間函式獲取本月最後一天SQLServer函式
- linux下定時執行任務的方法--crontabLinux
- Linux下用crontab定時執行PHP程式LinuxPHP
- ABAP 求上月第一天 最後一天 月份相加減 具體程式碼
- crontab+shell 實現每秒執行一個任務