# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed
推薦記憶為 分 時 日 月 周
服務的啟動和停止
cron服務是linux的內置服務,但它不會開機自動啟動。可以用以下命令啟動和停止服務:
/sbin/service crond start
/sbin/service crond stop
/sbin/service crond restart
/sbin/service crond reload
以上1-4行分別為啟動、停止、重啟服務和重新加載配置。(不過,這裡要說明一點,添加例行命令後,不重啟,也是生效的(freebsd環境下))
要把cron設為在開機的時候自動啟動,在 /etc/rc.d/rc.local 腳本中加入 /sbin/service crond start 即可。
-----------------------------------------------------------------------------------------------
如果你想以用戶joey的身份每小時的第15分鐘運行某個程序,可以使用:
15 * * * * joey /usr/bin/command >> /dev/null 2>&1
其中的星號(*)是通配符,表示cron將忽略這個字段。
如果你想每兩小時就運行某個程序,可以在小時字段裡使用 */2。它將會在2點,4點,6點……22點,24點運行。具體語句如下:
0 */2 * * * joey /usr/bin/command >> /dev/null 2>&1
cron語句中還可以使用逗號(,)來指定多個時間。例如你想在每小時的15分和30分運行某個程序,可以在分鐘字段使用 15,30:
15,30 * * * * joey /usr/bin/command >> /dev/null 2>&1
如果你想在每月的第一週(即1號到7號)每天的指定時間運行某個程序,可以在日期字段使用 1-7:
15,30 */2 1-7 * * joey /usr/bin/command >> /dev/null 2>&1
這條語句將在每月的第1-7日每兩小時的15分和30分(02:15,02:30……22: 15,22:30等)運行 /usr/bin/somecommand 命令。
如果你想在每天的16:18執行一個腳本集合,可以把所有要執行的腳本放到一個目錄中(如 /home/username/cron),可以使用:
18 16 * * * root run-parts /home/username/cron >> /dev/null 2>&1
如果你想保存某個程序的輸出結果, 可以把 >> /dev/null 2>&1 替換為 >> /home/user/somecommand.log 2>&1 。
--------------------------------------------------------
總結
查看當前用戶的cron配置,使用 crontab -l
編輯當前用戶的cron配置,使用 crontab -e
刪除當前用戶的cron配置,使用 crontab -r
以root身份查看/編輯/刪除某用戶的cron配置,在命令後加上 -u USERNAME
配置系統級的任務,編輯 /etc/crontab 文件