當(dāng)前位置:首頁 > IT技術(shù) > 系統(tǒng)服務(wù) > 正文

Ubuntu下用crontab 部署定時(shí)任務(wù)
2021-09-06 19:11:32

crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。通俗來講就是執(zhí)行定時(shí)任務(wù)的一個(gè)命令。

1.crontab的安裝以及服務(wù)的開啟

第一步:檢查你得服務(wù)器上是否安裝了crontab

rpm -qa | grep crontab

若沒有,首先就在服務(wù)器上安裝

 apt-get install cron

第二步:開啟定時(shí)任務(wù)

運(yùn)行:crontab –e
然后進(jìn)入一個(gè)可編輯的文件,編寫定時(shí)任務(wù):
*/1 * * * * /usr/bin/python /python/asch-check.py

以上代碼的寓意為:表示1分鐘執(zhí)行一次asch-check.py腳本

第三步:啟動(dòng)服務(wù)

service cron start

第四步:查看定時(shí)任務(wù)

crontab -l #查看定時(shí)任務(wù)

2.安裝日志服務(wù)rsyslog

第一步:安裝 rsyslog

apt-get install rsyslog

第二步:啟動(dòng)日志

service rsyslog start

第三步:編輯設(shè)置

vi /etc/rsyslog.d/50-default.conf

cron.*              /var/log/cron.log #將cron前面的注釋符去掉 

第四步:重啟

service rsyslog restart

第五步:查看cron運(yùn)行任務(wù)和日志:

crontab -l #查看定時(shí)任務(wù)

等到時(shí)間到了之后,發(fā)現(xiàn)定時(shí)任務(wù)未執(zhí)行

tail -f?/var/log/cron.log? 查看日志

3.cron常用的命令

crontab file [-u user]-用指定的文件替代目前的crontab。?
crontab-[-u user]-用標(biāo)準(zhǔn)輸入替代目前的crontab.?
crontab-1[user]-列出用戶目前的crontab.?
crontab-e[user]-編輯用戶目前的crontab.?
crontab-d[user]-刪除用戶目前的crontab.?
crontab-c dir- 指定crontab的目錄。
eg:
service cron start     //啟動(dòng)服務(wù)

service cron stop      //關(guān)閉服務(wù)

service cron restart   //重啟服務(wù)

service cron reload    //重新載入配置

service cron status    //查看crontab服務(wù)狀態(tài)

crontab –l  //查看定時(shí)任務(wù)
?

4.常用的周期格式


每五分鐘執(zhí)行 */5 * * * *

每小時(shí)執(zhí)行    0 * * * *

每天執(zhí)行        0 0 * * *

每周執(zhí)行       0 0 * * 0

每月執(zhí)行        0 0 1 * *

每年執(zhí)行       0 0 1 1 *

每分鐘執(zhí)行一次  * * * * * user command

每隔2小時(shí)執(zhí)行一次**/2 ** * user command (/表示頻率)

每天8:30分執(zhí)行一次308 * * * user command

每小時(shí)的30和50分各執(zhí)行一次   30,50 * * * * user command(,表示并列)

每個(gè)月的3號(hào)到6號(hào)的8:30執(zhí)行一次  30 8 3-6 * * user command (-表示范圍)

每個(gè)星期一的 8:30 執(zhí)行一次   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 ? ? ? ? ? ? ? #每一小時(shí)重啟apache?
0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? #晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apache?
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart ?#每月的4號(hào)與每周一到周三的11點(diǎn)重啟apache?
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart ? ? ? ? ? ? ? #一月一號(hào)的4點(diǎn)重啟apache?

?5.特殊字符的含義

特殊字符:
星號(hào)(*):代表’‘每’'的意思,例如month字段如果是星號(hào),則表示每月都執(zhí)行該命令。
逗號(hào)(,):表示分隔時(shí)段的意思,例如,“1,3,5,7,9”。
中杠(-):表示一個(gè)時(shí)間范圍,例如“2-6”表示“2,3,4,5,6”。
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每兩小時(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。

?

本文摘自 :https://www.cnblogs.com/

開通會(huì)員,享受整站包年服務(wù)立即開通 >