crontab 設定

基本介紹

crontab 用來設定 Linux 上例行性工作,由 crond 提供排程服務。

crond 預設有三個地方會有執行腳本設定檔:

/etc/crontab : 一般放置系統排程
/etc/cron.d/*: 一般放置系統排程,或是自己開發的軟體所需的排程,例如 /etc/cron.d/myJob
/var/spool/cron/*: 使用者自己的 crontab 設定


管理使用權限

/etc/cron.allow:紀錄可以使用的帳號
/etc/cron.deny:紀錄不可以使用的帳號

建議擇一使用即可


操作

設定個別使用者的 crontab

編輯排程,其真正代表的是編輯 /usr/bin/crontab 這個執行檔

1
crontab -e

移除所有的 crontab 的工作內容

1
crontab -r

顯示目前排程

1
crontab -l

改變排程的執行身份

1
crontab -u

設定系統的 crontab

1
vi /etc/crontab

啟動服務

通常 crontab 設定完即啟用設定,但有些 Unix 版本如可能不會馬上啟用。
這時候需要重新啟動 crond 服務

1
systemctl restart crond

規則

小時 星期 執行身份 指令
0~59 0~23 1~31 1-12 0-6 帳號 sh myJob.sh

範例

每分鐘執行一次:輸出文字至檔案 test.txt

1
* * * * * echo 'test' >> /home/yuchi/test.txt

Reference

online crontab editor
https://crontab.guru/

https://code.kpman.cc/2015/02/11/%E5%88%A9%E7%94%A8-crontab-%E4%BE%86%E5%81%9A-Linux-%E5%9B%BA%E5%AE%9A%E6%8E%92%E7%A8%8B/

http://linux.vbird.org/linux_basic/0430cron.php