Ubuntu下用crontab 部署定時任務
阿新 • • 發佈:2021-09-06
crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。通俗來講就是執行定時任務的一個命令。
1.crontab的安裝以及服務的開啟
第一步:檢查你得伺服器上是否安裝了crontab
rpm -qa | grep crontab
若沒有,首先就在伺服器上安裝
apt-get install cron
第二步:開啟定時任務
執行:crontab –e
然後進入一個可編輯的檔案,編寫定時任務:
*/1 * * * * /usr/bin/python /python/asch-check.py
以上程式碼的寓意為:表示1分鐘執行一次asch-check.py指令碼
第三步:啟動服務
service cron start
第四步:檢視定時任務
crontab -l #檢視定時任務
2.安裝日誌服務rsyslog
第一步:安裝 rsyslog
apt-get install rsyslog
第二步:啟動日誌
service rsyslog start
第三步:編輯設定
vi /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log #將cron前面的註釋符去掉
第四步:重啟
service rsyslog restart
第五步:檢視cron執行任務和日誌:
crontab -l #檢視定時任務
等到時間到了之後,發現定時任務未執行
tail -f/var/log/cron.log 檢視日誌
3.cron常用的命令
crontab file [-u user]-用指定的檔案替代目前的crontab。
crontab-[-u user]-用標準輸入替代目前的crontab.
crontab-1[user]-列出使用者目前的crontab.
crontab-e[user]-編輯使用者目前的crontab.
crontab-d[user]-刪除使用者目前的crontab.
crontab-c dir- 指定crontab的目錄。
eg:
service cron start //啟動服務
service cron stop //關閉服務
service cron restart //重啟服務
service cron reload //重新載入配置
service cron status //檢視crontab服務狀態
crontab –l //檢視定時任務
4.常用的週期格式
每五分鐘執行 */5 * * * * 每小時執行 0 * * * * 每天執行 0 0 * * * 每週執行 0 0 * * 0 每月執行 0 0 1 * * 每年執行 0 0 1 1 * 每分鐘執行一次 * * * * * user command 每隔2小時執行一次**/2 ** * user command (/表示頻率) 每天8:30分執行一次308 * * * user command 每小時的30和50分各執行一次 30,50 * * * * user command(,表示並列) 每個月的3號到6號的8:30執行一次 30 8 3-6 * * user command (-表示範圍) 每個星期一的 8:30 執行一次 30 8 * * 1 user command (周的範圍為0-7,0和7代表週日)
eg:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart #每晚的21:30重啟apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart #每月1、10、22日的4 : 45重啟apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart #每週六、週日的1 : 10重啟apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart #每天18 : 00至23 : 00之間每隔30分鐘重啟apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart #每星期六的11 : 00 pm重啟apache。
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart #每一小時重啟apache
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart #晚上11點到早上7點之間,每隔一小時重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart #每月的4號與每週一到週三的11點重啟apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart #一月一號的4點重啟apache