Crontab 的寫法(@reboot, @yearly...)

Crontab 主要是在做排程, 通常一般寫法大概都是如下:

0 0 * * * /usr/local/www/awstats/cgi-bin/awstats.sh

這種寫法規則如下:

分 時 日 月 週

對應表如下:

field              allowed values
-----             --------------
minute            0-59
hour               0-23
day of month   1-31
month            1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

看到彥明長輩寫才知道有這種寫法:

@hourly /usr/local/www/awstats/cgi-bin/awstats.sh

使用 @hourly 對應的是 0 * * * *, 還有下述可以使用:

string            meaning
------           -------
@reboot        Run once, at startup.
@yearly         Run once a year, "0 0 1 1 *".
@annually      (same as @yearly)
@monthly       Run once a month, "0 0 1 * *".
@weekly        Run once a week, "0 0 * * 0".
@daily           Run once a day, "0 0 * * *".
@midnight      (same as @daily)
@hourly         Run once an hour, "0 * * * *".

特別是看到 @reboot, 所以寫 rc.local 的東西, 也可以使用 @reboot 寫在 crontab 裡面?... XD

找時間再實驗看看. 更多詳細的應用, 可以 man 5 crontab :)

註: sudo crontab -e -u www-data # 可以編輯 www-data 權限的 crontab



更多推薦文章

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

About Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
This entry was posted in My_Note-Unix. Bookmark the permalink.

7 Responses to Crontab 的寫法(@reboot, @yearly...)

  1. 小海 says:

    原來還有這一招阿! 受教了~

  2. ricky says:

    真的是领教了,原来一直按部就班的写,多谢

  3. Tsung says:

    我也是看到長輩這樣寫, 就趕快記下來~ :)

  4. jeffhung says:

    我想 @reboot 的指令要等到 crond 啟動後才能執行,而 rc.local 應該可以更早之前就開始跑。

  5. Tsung says:

    嗯嗯, 不過通常 rc.local 都是整個 rc.d 這些跑完後最後執行的, 所以跟用 @reboot 來跑應該差不多意思?...
    這樣子就可以讓程式 Push 輕鬆點吧~
    如果可以寫在 crontab 裡面, 就不用去動到系統囉~ :)
    (不知道寫在自己個人的 crontab 裡面, 到底會不會被執行到, 也是要測試看看的. XD)

  6. jiing says:

    有點小筆誤的樣子

  7. Tsung says:

    是耶.. 確實是筆誤, 感謝指正~~ Orz..

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>