CronJob 進階技巧

    Crontab 格式

    * * * * * command to be executed
    - - - - -
    | | | | |
    | | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
    | | | ------- Month (1 - 12)
    | | --------- Day of month (1 - 31)
    | ----------- Hour (0 - 23)
    ------------- Minute (0 - 59)
    
    */5 * * * * per 5 minutes 
    

    常用指令

    列出現有 CronJobs
    # crontab -l
    # crontab -u username -l
    
    移除現有 CronJobs,注意: 不建議使用,移除 Job 建議使用編輯或註解的方式
    # crontab -r
    # crontab -r -u username 
    

    使用特殊字元

    Special 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 * * * *".

     

    範例:
    使用特殊字元取代前五個時間格式的表示式

    @hourly /path/to/ntpdate
    

    每個月的最後一天

    if test $(TZ=GMT-24 date +%d) = 1; then
       /path/to/job
    fi
    
    OR
    
    if test `TZ=GMT-24 date +%d` = 1; then
       /path/to/job
    fi 

    關閉惱人的郵件通知

    在每一個 CronJob 後面加上 > /dev/null 2>&1

    0 3 * * * /root/backup.sh >/dev/null 2>&1
    

    或者在最上面加上這一行

    MAILTO=""
    

    防止輸出訊息 'TERM environment variable not set'

    在 shell script 加上

    reference to undefined name 'syntax' Exception of type 'MindTouch.Deki.Script.Runtime.DekiScriptUndefinedNameException' was thrown. (click for details)
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core