完整的是七位
秒 分鐘 小時 日 月 星期 年(有的沒有這個年)
「0 0 12 * * ?」 每天中午12點觸發
「0 15 10 ? * *」 每天上午10:15觸發
「0 15 10 * * ?」 每天上午10:15觸發
「0 15 10 * * ? *」 每天上午10:15觸發
「0 15 10 * * ? 2005」 2023年的每天上午10:15觸發
「0 * 14 * * ?」 在每天下午2點到下午2:59期間的每1分鐘觸發
「0 0/5 14 * * ?」 在每天下午2點到下午2:55期間的每5分鐘觸發
「0 0/5 14,18 * * ?」 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發
「0 0-5 14 * * ?」 在每天下午2點到下午2:05期間的每1分鐘觸發
「0 10,44 14 ? 3 wed」 每年三月的星期三的下午2:10和2:44觸發
「0 15 10 ? * mon-fri」 周一至周五的上午10:15觸發
「0 15 10 15 * ?」 每月15日上午10:15觸發
「0 15 10 l * ?」 每月最後一日的上午10:15觸發
「0 15 10 ? * 6l」 每月的最後乙個星期五上午10:15觸發
「0 15 10 ? * 6l 2002-2005」 2023年至2023年的每月的最後乙個星期五上午10:15觸發
「0 15 10 ? * 6#3」 每月的第三個星期五上午10:15觸發
星期會和日衝突,將其中乙個置為?
和標準的不同,只有五位
分鐘,小時,日(day of month),月(month of year),週幾(day of week).
對應的重啟定時任務命令
1 /etc/init.d/crond restart
2 service crond restart
下面是以前寫的
開啟crontab日誌。
crontab預設不開啟日誌,所以先開啟定時任務的日誌來檢視(centos實際表明是預設開啟的)
修改rsyslog服務,將 /etc/rsyslog.conf 檔案中的 #cron.* 前的 # 刪掉;用service rsyslog restart重啟rsyslog服務:
要檢查crontab 任務執**況,可以檢視log 檔案 /var/log/cron。
寫定時任務
crontab -e
開啟本使用者的定時任務,即建立以本使用者名為檔名的定時任務檔案,位置在/var/spool/cron/使用者名稱。(我的使用者名稱是root)(整個這個是檔案,檔名就是使用者名稱)
定時任務語句格式為:執行週期+命令,週期有5個域,分別是
分鐘,小時,日(day of month),月(month of year),週幾(day of week).
每個域不加限制任意的話用*,整體格式為:
寫完後重啟cron 服務
service crond restart
順便附上常用的週期格式
每五分鐘執行 */5 * * * *
每小時執行 0 * * * *
每天執行 0 0 * * *
每週執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *
定時任務執行後提示資訊在/var/spool/mail/root中
可以cat /var/spool/mail/root找錯誤資訊(這個太重要了,之前一直不知道)
使用絕對路徑,.s**件開頭加上(好像不加也沒關係)
#!/bin/sh
source /etc/profile
crontab定時任務走過的坑坑
個人實際寫入的情況
test.sh內容
#!/bin/sh
source /etc/profile
ps aux | grep 『python』| awk 『nr==1』 | xargs kill -9 //awk取第一行第二列的pid
screen -wipe //強制殺死程序後,screen好像沒法連上
screen -dms dy /opt/anaconda3/bin/python /root/douyu/bin/run.py //沒有-dmr
crontab -e輸入下面內容
0 * * * * /root/test.sh
screen -dms docker-d 新建乙個名叫docker-d的session,但暫不進入,可用於系統啟動指令碼裡
當年居然想著進screen檢視輸出的日誌。現在直接上docker了[哈哈]
Cron 定時任務
一般系統都會有定時任務存在,比如訂單系統,會根據定時任務來實時同步訂單狀態,同步交易狀態等等。定時任務可以使用quartz 定時任務,也可以自己寫乙個任務排程系統,只要能實現功能就可以。下面我簡單介紹一下quartz 定時任務配置,需要配置三個bean,分別為 quartz,trigger,sche...
Cron定時任務
cron cron表示式是乙個字串,字串以5或6個空格隔開,分為6或7個域,每乙個域代表乙個含義,cron有如下兩種語法格式 seconds minutes hours dayofmonth month dayofweek year或 seconds minutes hours dayofmonth...
centos定時任務cron
任務指令行包括五個時間日期域,接著乙個使用者域 如果是系統級的任務檔案 其餘的被當做是此任務的命令列。下圖顯示系統級任務檔案中的指令行的格式 例如 1 root usr local nginx logs nginx log.sh 每分鐘執行一次 usr local nginx logs nginx ...