Cron定時任務

2021-09-27 11:30:37 字數 2310 閱讀 1089

完整的是七位

秒 分鐘 小時 日 月 星期 年(有的沒有這個年)

「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 ...