作者:星火燎原智勇
連結:https://www.cnblogs.com/liang1101/p/7988671.html
定時任務
任務排程的crond常駐命令
crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務排程的工作主要分為以下兩類:
1、系統執行的工作:系統週期性所要執行的工作,如備份系統資料、清理快取
2、個人執行的工作:某個使用者定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個使用者自行設定。
分鐘 | 小時 | 天數 | 月數 | 周數 |
minute | hour | day | month | week |
每個欄位代表的含義如下:
Minute 每個小時的第幾分鐘執行該任務
Hour 每天的第幾個小時執行該任務
Day 每月的第幾天執行該任務
Month 每年的第幾個月執行該任務
DayOfWeek 每週的第幾天執行該任務
對於程式員來說最關註的莫過於使用示例,透過示例可以一目瞭然的掌握如何使用定時任務
註意:在 crontab 命令中只有 “絕對路徑”,不存在相對路徑,故執行任何命令都需要寫絕對路徑
1、每小時的第5分鐘執行 ls 命令
5 * * * * ls
2、每5分鐘執行 ls 命令
*/5 * * * * ls
3、每天的 4:30 執行 ls 命令
30 4 * * * ls
4、每小時執行 ls 命令
0 * * * * ls
5、每天執行 ls 命令
0 0 * * * ls
6、每週執行 ls 命令
0 0 * * 0 ls
7、每年執行 ls 命令
0 0 1 1 * ls
8、每月 8號 的 7:20 執行 ls 命令
20 7 8 * * ls
9、每年的 6月28號 5:30 執行 ls 命令
30 5 28 6 * ls
10、每星期日的 6:30 執行 ls 命令
30 6 * * 0 ls
註意:0 表示星期天, 1 表示星期一,以此類推;也可以用英文來表示,sun 表示星期天,mon 表示星期一等。
11、每月 10號和20號 的 4:30 執行 ls 命令
30 4 10,20 * * ls
註意:” , ” 用來連線多個不連續的時間
12、每天 8~11點 的第 25 分鐘執行 ls 命令
25 8-11 * * * ls
註意:” – ” 用來連線連續的時間
13、每個月中每隔 10天 的 5:30 執行 ls 命令
30 5 */10 * * ls
即:每月的 1、11、21、31日 在 5:30 執行一次 ls 命令
14、每天 4:30 以 root 身份執行 /etc/cron.daily 目錄中的所有可執行檔案
30 4 * * * root run-parts /etc/cron.daily
15、真實使用中,一般都是執行自己的可執行檔案
0 * * * * cd /data/sync-data/mdd;/data/GoProjects/bin/go-elastic-index -config=mdd.toml >> mdd.log 2>&1
上面命令譯為:每小時執行一次,首先透過 cd 命令進入到指定絕對目錄下,之後使用絕對路徑找到可執行檔案正常執行即可。對應的 mdd.toml 和 mdd.log 都是在 cd 到的目錄下,此時就不需要全部寫全目錄了,如果不使用 cd 命令,最終的寫法如下:
0 * * * * /data/GoProjects/bin/go-elastic-index -config=/data/sync-data/mdd/mdd.toml >> /data/sync-data/mdd/mdd.log 2>&1
最後命令
crontab -l 檢視定時任務
crontab -l -u jp 列出使用者jp的所有排程任務
crontab -e 編輯定時任務
crontab -r 刪除所有的定時任務
朋友會在“發現-看一看”看到你“在看”的內容