我們有時候會希望電腦能幫我們每一段時間就自動做一次指定動作,像是每天備份資料1次,或者每兩週更新系統一次。這時候我們可以設定系統排程來自動執行指定工作
在Linux中主要使用cron來管理排程,cron常用於運維和管理,但也可用於其他地方,如:定期下載文件和郵件。
而crontab是用來可以用於創建、編輯或刪除任務讓cron幫忙在指定時間執行(也稱為crontab文件)。
crontab [ -u user ] [ -i ] { -e | -l | -r }
-u
: 指定用戶-i
: 執行動作前確認-e
: 編輯任務-l
: 列出目前任務-r
: 刪除crontab文件minute hour day_of_month month day_of_week command
1,3,4,7 * * * * echo hello world
表示,在每小時的1、3、4、7分時,列印"hello world"。1-6 * * * * echo hello world
,表示,每小時的1到6分鐘內,每分鐘都會列印"hello world"。*/6 * * * * echo hello world
表示,每(60/6=10)分鐘列印一回"hello world"。*%10 * * * * echo hello world
表示,每10分鐘列印一回"hello world"。Keyword | 頻率 | 等價於(日期語法) |
---|---|---|
@reboot | 啟動時 | x |
@yearly | 每年的指定時間 | 20 4 9 6 * (在6月9日4:20執行) |
@annually | 同上 | 同上 |
@monthly | 每個月的指定時間 | 20 4 1 * * (在1日4:20執行) |
@weekly | 每周的指定時間 | 20 4 * * 0 (每周日4:20執行) |
@daily | 每天的指定時間 | 9 6 * * * (每天6:09執行) |
@midnight | 同上 | 同上 |
@hourly | 每小時的指定時間 | 51 * * * * (每小時的:51執行) |
https://zh.wikipedia.org/zh-tw/Cron
https://wiki.archlinux.org/title/Cron_(%E6%AD%A3%E9%AB%94%E4%B8%AD%E6%96%87)