歡迎光臨
每天分享高質量文章

Linux 之 crontab 使用

作者:星火燎原智勇

連結: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 命令

 

* * * * ls

 

2、每5分鐘執行 ls 命令

 

*/5 * * * * ls

3、每天的 4:30 執行 ls 命令

 

30 4 * * * ls

4、每小時執行 ls 命令

 

* * * * 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        刪除所有的定時任務

已同步到看一看
贊(0)

分享創造快樂