怎樣在 CentOS 設置定時任務 crontab
最近更新時間 2020-11-24 17:46:45
cron是一款類Unix的操作系統下的基於時間的任務管理系統。用戶們可以通過 cron 在固定時間、日期、間隔下,運行定期任務(可以是命令和腳本)。cron常用於運維和管理。cron該詞來源於希臘語chronos(χρόνος),原意是時間。
定時任務格式
定時任務格式如下所示,最小時間單位為1分鐘,可以使用月份(jan,feb,mar,apr ...)、星期(sun,mon,tue,wed,thu,fri,sat)的英文簡稱表示。
# Example of job definition: # .---------------- 分鐘 (0 - 59) # | .------------- 小時 (0 - 23) # | | .---------- 日期 (1 - 31) # | | | .------- 月份 (1 - 12) # | | | | .---- 星期 (0 - 6) (0表示週日) # | | | | | # * * * * * user-name command to be executed
可以使用下面的命令編輯和查看定時任務。
編輯定時任務
vi /etc/crontab
編輯定時任務
crontab -e
查看定時任務
crontab -l
刪除定時任務
crontab -r
常用案例
每分鐘執行一次 echo 命令。
* * * * * echo hello world
每分5分鐘執行一次備份命令,使用 nohup,不打印日誌。
*/5 * * * * nohup backup > /dev/null 2>&1 &
* 和 0 表示不同的意義,連接符 / 表示時間間隔,如下所示:
表示10點到11點,每分鐘執行一次
* 10 * * * echo hello world
表示10:00執行一次命令
0 10 * * * echo hello world
表示10點到11點,每5分鐘執行一次
*/5 10 * * * echo hello world
每天6點10分執行一次備份。
10 6 * * * backup
每月1號和15號全量備份。
0 0 1,15 * * backup_all
每天 6-10 點的第10、15、30分鐘執行 Docker 中的PHP腳本。
10,15,30 6-10 * * * docker exec `docker ps | grep '9000/tcp' |awk '{print $1}'` php /path/index.php > /dev/null 2>&1
注意事項
- 可以通過 user 參數指定執行的用戶。
- 命令中最好使用絕對路徑。
- 可在 /var/log/cron 中查看執行日誌。