天天看點

centos7.2 利用crontab執行定時計劃任務簡介服務配置日志

此文章已不再更新,檢視最新版文章于更多内容:

《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 中可以檢視執行日志,以供分析檢視

好了,計劃任務就是這麼簡單了

繼續閱讀