Linux定時任務crontab

cron是linux下的定時執行工具,並提供crontab命令來設定cron服務。

service crond status //查看cron運行狀態
service crond start //啓動cron服務
service crond stop //停止cron服務
service crond restart //重啓cron服務

1.配置用戶級cron
1)crontab參數:

crontab -e //編輯某個用戶的cron服務。
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //查看某個用戶cron服務的詳細內容
crontab -r //刪除某個用戶的cron服務

2)增加某個用戶的cron服務
假如當前登錄用戶爲root,則使用crontab -e命令爲root用戶創建一個定時任務。
3)定時任務格式說明

* * * * * file/comand [arg1,arg2,...]

前半部分爲時間設定,前5個*代表5個數值,其取值範圍及含義如下:
*:分鐘(0-59)
*:小時(0-23)
*:日期(1-31)
*:月份(1-12)
*:星期(0-6),0表示星期天
除了數字,還有一些特殊符號可能會運用在上面5個地方,如:
“*”表示取值範圍內的任意數值;
“/”表示每的意思,表示間隔;
“-“表示從某個數字到某個數字
舉例說明:

0 6 * * * echo "Good morning." //每天早上6點執行命令

0 */2 * * * echo "Have a break now." >> /tmp/test.txt //每2小時執行命令
0 4 1 1 * command line //1月1號早上4點執行命令

後半部分爲需要執行的腳本或者腳本文件及相應的參數。
如:

10 22 * * 5 /home/mysqldump/datashuo_fast_backup.sh market market_weixin datashuo_fast_backup.log 2>&1

上面一行表示:每個星期五22點10分執行腳本文件datashuo_fast_backup.sh,同時傳送2個參數market和market_weixin,並將執行過程信息輸出到對應的日誌文件中。
2>&1表示錯誤信息重定向到標準信息,即不管是錯誤信息還是標準信息都輸出到日誌文件中。
4)使用crontab -e編輯任務並保存後,cron自動在/var/spool/cron下生成一個與此用戶同名的文件,該文件記錄了某個用戶的cron信息。
該文件不可被編輯,只能查看。
5)cron會每過一分鐘讀一次這個文件,檢查是否要執行裏面的命令。所以在使用crontab -e編輯任務後,無需重啓crond

2.配置系統級cron
cron服務每分鐘不僅要讀一次/var/spool/cron內的所有文件,還需要讀一次/etc/crontab文件。
用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。
此文件格式爲:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現錯誤,或者有數據輸出,數據作爲郵件發給這個帳號
HOME=/ //使用者運行的路徑,這裏是根目錄

#For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

如,vi /etc/crontab,增加如下信息:

01 * * * * root run-parts /etc/cron.hourly //root用戶每小時執行/etc/cron.hourly內的腳本
02 4 * * * root run-parts /etc/cron.daily //root用戶每天執行/etc/cron.daily內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly //root用戶每星期執行/etc/cron.weekly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly //root用戶每月去執行/etc/cron.monthly內的腳本

注:
如果去掉參數”run-parts”,那麼後面直接跟需要執行的命令或者腳本文件即可。
如果使用參數”run -parts”,後面接腳本文件所在的路徑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章