Crontab

Crontab

Crontab 在 Ubuntu 裏頭是預載的,其功能是可以根據時間參數來執行工作排程; 它的格式如下:

* * * * * command to be executed

依序分別是 分鐘[0-59]、小時[0-23]、日期[1-31]、月份[1-12]、星期[0-6]、command 其中 星期 0 = 天的意思。

符號

  • 「*」:不設限
  • 「,」:分隔時段。例如:30 10,20 * * * command,代表早上十點半和下午八點半執行。
  • 「-」:一段時間範圍。例如:15 9-12 * * * command,代表從九點到十二點的每個 15 分都執行一次。
  • 「/n」:表示每個 n 單位間隔。例如:*/5 * * * * command,代表每隔 5 分鐘執行一次。
* * * * *:每隔一分鐘執行一次。

你也可以使用 @ 來取代五個參數:

  • @reboot:僅在開機的時候執行一次。
  • @yearly:一年執行一次,和0 0 1 1 * command效果一樣。
  • @annually:(和@yearly一樣)
  • @monthly:一個月執行一次,和0 0 1 * * command效果一樣。
  • @weekly:一個星期執行一次,和0 0 * * 0 command效果一樣。
  • @daily:每天執行,和0 0 * * * command效果一樣。
  • @midnight:(和@daily一樣)
  • @hourly :每小時執行,和0 * * * * command效果一樣。

輸出

另外,需要設立 command 輸出的地點或方式; 如使用 Postfix 或是直接在 command 後方加上 » /file_path,

sudo apt-get install postfix

設定完後,可以在下列位置查看 output

sudo tail -f /var/mail/<user>

而如果需要清空 mail 內容的話, 則利用

> /var/mail/<user>

除錯

Ubuntu 的話,cron log 會和 syslog 寫在一塊,使用下列的 function 來區隔:

grep CRON /var/log/syslog

編輯

crontab -l
crontab -e
crontab -r

-l:列出所有的 cron -e:編輯 -r:移除 並可以使用

/etc/init.d/cron restart

來重新啟用 crontab

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus