此文章已不再更新,檢視最新版文章于更多内容:
《centos7 利用crontab執行定時計劃任務》
-------------------------------------------------- 分隔符 --------------------------------------------------
簡介
就像再windows上有計劃任務一樣,centos7 自然也有計劃任務,而且設定更為靈活,好用。再centos7 上可以利用crontab 來執行計劃任務, 依賴與 crond 的系統服務,這個服務是系統自帶的,可以直接檢視狀态,啟動,停止。
服務
檢視cron的狀态,設為開機啟動
systemctl status crond (檢視狀态)
systemctl enable crond (設為開機啟動)
systemctl start crond (啟動crond服務)
配置
編輯crontab 的配置檔案,設定定時任務。
# 編輯使用者的定時任務,指定的執行的使用者,預設為目前執行指令的使用者
crontab -u {使用者名} -e
配置詳解
# crontab基本格式
# +---------------- minute 分鐘(0 - 59)
# | +------------- hour 小時(0 - 23)
# | | +---------- day 日期(1 - 31)
# | | | +------- month 月份(1 - 12)
# | | | | +---- week 星期(0 - 7) (星期天=0 or 7)
# | | | | |
格式為:
# * * * * * 使用者 要運作的指令
例如:
*/30 * * * root /usr/local/mycommand.sh (每天,每30分鐘執行一次 mycommand指令)
* 3 * * * root /usr/local/mycommand.sh (每天淩晨三點,執行指令腳本,PS:這裡由于第一個的分鐘沒有設定,那麼就會每天淩晨3點的每分鐘都執行一次指令)
00 3 * * * root /usr/local/mycommand.sh (這樣就是每天淩晨三點整執行一次指令腳本)
*/10 11-13 * * * root /usr/local/mycommand.sh (每天11點到13點之間,每10分鐘執行一次指令腳本,這一種用法也很常用)
10-30 * * * * root /usr/local/mycommand.sh (每小時的10-30分鐘,每分鐘執行一次指令腳本,共執行20次)
10,30 * * * * * root /usr/local/mycommand.sh (每小時的10,30分鐘,分别執行一次指令腳本,共執行2次)
-----------------------------------------------------------------------------------------------------------
3. 儲存退出後,即可生效,預設crontab會每分鐘檢查一次任務檔案的。
# 列出使用者的定時任務清單
crontab -u {使用者名} -l
# 還可以直接寫到crond的主配置檔案内,預設執行者為root。
vim /etc/crontab
PS:特别注意,crond的任務計劃, 有并不會調用使用者設定的環境變量,它有自己的環境變量,當你用到一些指令時,比如mysqldump等需要環境變量的指令,手工執行腳本時是正常的,但用crond執行的時候就會不行,這時你要麼寫完整的絕對路徑,要麼将環境變量添加到 /etc/crontab 中。另外,ceontab中不友善執行語句繁多的任務,常用推薦是寫成shell腳本或python腳本進行執行
日志
另外,執行的計劃任務,日志在 /var/log/cron 中可以檢視執行日志,以供分析檢視
好了,計劃任務就是這麼簡單了