Cron 定時任務命令-配置檔案詳解
阿新 • • 發佈:2020-07-10
定時任務
定時任務的作用
1.系統級別的定時任務
臨時檔案清理
系統資訊採集
日誌檔案切割
2.使用者級別的定時任務
定時向網際網路同步時間
定時備份系統配置檔案
定時備份資料庫的資料
計劃任務服務
# 定時任務,服務啟動和停止
# c6
/etc/init.d/crond start
/etc/init.d/rond/ stop
# c7
systemctl start crond
systemctl stop crond
相關配置檔案
[root@gong ~]# cat /etc/crontab SHELL=/bin/bash # 定時任務的shell PATH=/sbin:/bin:/usr/sbin:/usr/bin # 環境變數 MAILTO=root # 執行錯誤之後,會給root使用者傳送mail # 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 tail -f /var/log/cron # 記錄日誌的位置
寫定時任務的時候需要注意:
- 寫命令的時候需要使用絕對路徑,因為配置檔案路徑的原因容易導致找不到命令。
- 複雜命令給或者多個命令儘量寫到指令碼中
- 定時任務中所有的輸出內容全部放到/dev/null
- 一般周和日不會共存
- 編輯指令碼的時候注意註釋,方便檢視作用
FBI WARNING
PATH 出現的目錄,下面可執行檔案,都可以不加路徑直接執行。注意執行指令碼的時候指令碼執行許可權的影響。
定時任務的語法
# 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 * * * * * command 分 時 日 月 周 分 0-59 時 0-23 日 0-31 月 1-12 周 0-6 # 每天凌晨2點執行ls命令 0 2 * * * ls # 每個月1號執行凌晨兩點執行ls 0 2 1 * * ls # 每月1號和15號12點都執行一次ls命令 0 12 1,15 * * ls # 每月1號到15號12點都執行一次ls命令 0 12 1-15 * * ls # 每年的2月14日凌晨2點,執行ls命令 0 2 14 2 * ls # 每週日凌晨2點執行ls命令 0 2 * * 7 ls # 每年6月份週五凌晨2點執行ls命令 0 2 * 6 5 ls # 每個月的14號並且是週日,凌晨兩點執行ls 0 2 14 * 7 # 滿足每年的2月14日時候是週日的時候執行ls 0 2 14 2 7 ls # 在每天凌晨2點這個時段,每10分鐘執行一次,在2:00這個時刻會執行。 */10 2 * * * ls # 沒分鐘執行一次ls * * * * * ls */1 * * * * ls # 每年2月14日凌晨00點,執行ls 0 0 14 2 * ls # 每5min執行一次,至儲存的時候開始 */5 * * * * ls # 每年的1月和5月和8月每天晚上凌晨2點執行ls 00 2 1,5,8 * ls # 在每年1到7月和9-12月的每天凌晨2點執行ls 00 02 1-7,9-12 * ls # 每個月的1-8號執行,凌晨2點執行ls 00 02 1-8 * * # 每個月的1號和10號和22號的凌晨4點45分執行ls命令 45 04 1,10,22 * * ls # 每個月的每2天的8點到11點的3分和15分執行ls命令 ---------跨月的時候 3,15 8-11 */2 * * /bin/ls 儲存時間:2020年4月26日 11點35分 4月28號,8點03分 和 8點15分,9點03分 和9點15分 , 10點03分和10點15分,11點03分和11點15分執行ls命令 4月30號 5月1號 5月3號 # 每天的00點-7點的每個小時和23點-00點的每個小時都執行ls命令 0 23-7/1 * * * /bin/ls # 每週一到週五的晚上21點15分執行ls命令 15 21 * * 1-5 /bin/ls
相關命令-crontab
-e # edit 編輯配置檔案/var/spool/cron/root
-l # 檢視當前定時任務,在讀取/var/spool/cron/root目錄下的配置檔案
-r # remove 刪除定時任務
-u # 指定使用者
# 刪除指定使用者的定時任務
[root@gong ~]# crontab -r -u root
除錯計劃任務步驟
1.命令列,測試是否能執行成功
sh -x 除錯指令碼
2.加快定時的頻率,測試定時任務是否能執行成
3.修改時間