Linux定時任務crontab

2021-07-12 04:13:59 字數 2028 閱讀 4206

1.相關檔案

/etc/crontab //設定當時任務執行時間

/etc/cron.hourly

/etc/cron.daily

/ect/cron.weekly

/ect/cron.monthly

//顯然,最好的方法就是不同的定時任務放在不同的資料夾下

2.建立指令碼檔案

touch mycron //建立乙個檔案

#!/bin/sh //以此開始

# here is your code

#end

//例如,yii2框架下的定時任務

#!/bin/sh

# exec cron daily

#注意:執行定時任務的命令必須是全路徑

/var/www/yii cron/daily

3.設定定時任務

基本格式 :

*  *  *

*  *  command

分 時 日 月 周 命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列表示月份1~12

第5列標識號星期0~6(0表示星期天)

第6列要執行的命令

開啟crontab 檔案,類似於下面:

shell=/bin/sh

path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command

17 * *

* * root cd / && run-parts --report /etc/cron.hourly

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )

52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

#其中詳細定義了定時任務執行的時間

分鐘 (0-59)

小時(0-23)

日期(1-31)

月份(1-12)

星期(0-6) //0代表星期天

*代表每一分鐘(小時、天、月)

如果是每天的某兩個小時,那麼就是 * x,y *

* *

4.開啟cron日誌

在ubuntu下安裝crontab後,系統預設未開啟crontab的日誌記錄,啟用crontab的日誌的辦法:

開啟/etc/rsyslog.d檔案,將50-default.conf 檔案中的#cron.*前的#刪掉,如圖

定位到/sbin/目錄下:

重啟rsyslog服務:

service rsyslog restart

重啟cron服務

service cron restart;

檢視日誌:

more /var/log/cron.log;

或者cd到/var/log下檢視

其他命令,請自行搜尋學習。定時任務不執行的可能原因:

1.shell檔案定時任務未使用全路徑

2.定時任務crontab未載入

3.建議開啟cron日誌,方便定位問題所在

4.重啟rsyslog,cron服務

Linux linux定時任務crontab

crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

linux定時任務

crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...