你可以把定時任務理解為乙個鬧鐘。
#crontab表示式
* * * * *
分 時 日 月 周
每天的凌晨2點 02:00 00 02 * * *
每月執行一次 00 00 01 * *
每個月的一號零點零時零分同時這一天時星期六 00 00 01 * 6
1、/etc/crontab
2、如下的目錄
/etc/cron.hourly/ # 系統定時任務每個⼩時運⾏這個⽬錄⾥的內容
/etc/cron.daily/ # 系統定時任務每天運⾏這個⽬錄⾥的內容
/etc/cron.weekly/ # 系統定時任務每週運⾏這個⽬錄⾥的內容
/etc/cron.monthly/ # 系統定時任務每⽉運⾏這個⽬錄⾥的內容
crontab -e
-e : 編輯計畫任務
-l : 檢視計畫任務
# 注:使用者級別的計畫任務存放在/var/spool/cron/,不同的使用者存放的計畫任務是以其自己的名字命名的指令碼
* 表示任意的(分、時、⽇、⽉、周)時間都執⾏
- 表示⼀個時間範圍段, 如5-7點
, 表示分隔時段, 如6,0,4表示週六、⽇、四
/1 表示每隔n單位時間, 如*/10 每10分鐘
#案例
# 1 3 5
00 00 1,3,5 * *
# 1到5號
00 00 1-5
# 每幾分鐘,每幾個小數,每幾天
0/2 /2
00 0/2 00 /2
00 00 0/2 00 00 /2
1.⼿動執⾏命令,然後保留執⾏成功的結果。
2.編寫指令碼
指令碼需要統⼀路徑/scripts 指令碼內容複製執⾏成功的命令(減少每個環節出錯⼏率)
3.執⾏指令碼
使⽤bash命令執⾏, 防⽌指令碼沒有增加執⾏許可權(/usr/bin/bash /bin/bash) 執⾏指令碼成功後,複製該執⾏的命令,以便寫⼊cron
4.編寫定時任務
加上必要的注釋資訊, ⼈、時間、任務
設定定時任務執⾏的週期
貼上執⾏指令碼的命令(不要⼿敲)
5.除錯定時任務
增加任務頻率測試
檢查環境變數問題(最好在指令碼中重新定義環境變數path)
檢查crond服務⽇志
1.定時任務規則之前加注釋
2.使⽤指令碼執⾏定時任務(只有⼀條簡單命令的可以直接使⽤命令執⾏)
3.運⾏指令碼⼀定要⽤絕對路徑執⾏,統⼀指令碼位置。
4.定時任務中date命令的百分號需轉義才能使⽤。
5.命令或指令碼結果(正確及錯誤)定向到空(>/dev/null 2>&1)或追加到⽂件中 >>/tmp/oldboy.txt 2>&1
6.避免不必要的程式及命令輸出,如打包命令,tar -v的顯示過程的選項。
7.打包壓縮使⽤相對路徑(切到⽬標⽬錄的上⼀級打包⽬標)
8.定時任務指令碼中的程式⽂件 ,盡量⽤絕對路徑,⽤戶的定時任務中的⽂件預設存放在當前⽤戶的家⽬錄
9.系統與命令位置有關的環境變數問題,建議指令碼中重新定義環境變數path。
#每天的凌晨2點整執⾏
00 02 * * *
#每⽉的1⽇的凌晨2點整執⾏
00 02 1 * *
#每年的2⽉14⽇凌晨2點執⾏
00 02 14 02 *
#每週天的凌晨2點整執⾏
00 02 * * 0
#每年的6⽉周五凌晨2點執⾏
00 02 * 6 5
#每⽉14⽇或每週⽇的凌晨2點都執⾏
00 02 14 * 7
#每年的2⽉14⽇或每年2⽉的周天的凌晨2點執⾏
00 02 14 02 7
#每天凌晨2點,每隔10分鐘執⾏⼀次
0/10 02 * * *
#每分鐘都執⾏
* * * * *
#每年2⽉14⽇的凌晨執⾏命令
00 00 14 2 *
#每隔5分鐘執⾏⼀次
00/5 * * * *
#每年的1⽉5⽉8⽉凌晨2點執⾏
00 02 * 1,5,8 *
#每⽉1號到8號凌晨2點執⾏
00 02 1-8 * *
#每天晚上21:00執⾏
00 21 * * *
#每⽉1、10、22⽇的4:45執⾏
45 04 1,10,22 * *
#每⽉1到10⽇的4:45執⾏
45 04 1-10 * *
#每隔兩天的上午8點到11點的第3和第15分鐘執⾏
3,15 8-11 0/2 * *
#晚上11點到早上7點之間,每隔兩⼩時執⾏
* 23-7/2 * * *
#周⼀到周五每天晚上21:15執⾏
15 21 * * 1-5
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
at定時任務
at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...
at定時任務
1 at是只執行一次,執行完後任務刪除。at的守護程序atd會以後臺模式執行,檢查作業佇列來執行。2 預設 atd每60秒巡邏一次,有作業時候,檢查作業時間,如果和當前時間一樣,就執行任務 3 在使用at命令的時候,一定要保證他的守護者atd程序的啟動。用ps ef grep atd來檢視atd是否...