linux命令之crontab
cron 是Linux的內建服務。有以下命令啟動、查看、關閉這個服務。
service cron start //啟動服務service cron stop //關閉服務service cron restart //重啟服務service cron reload //重新載入配置service cron status//查看服務狀態
cron全域設定檔在/etc 目錄下:
cron.d/系統自動定期需要做的任務cron.daily/每天執行一次的任務cron.hourly/每小時執行一次的任務cron.monthly/每個月執行一次的任務cron.weekly/每星期執行一次的任務crontab指定時間執行的任務
使用者cron設定檔:
每個使用者都有自己的cron設定檔,通過crontab -e 就可以編輯,一般情況下我們編輯好使用者的cron設定檔儲存退出後,系統會自動就存放於/var/spool/cron/crontabs/ 目錄中,檔案以使用者名稱命名。
crontab命令格式:
crontab [ -u user ] filecrontab [ -u user ] [ -i ] { -e | -l | -r }參數說明:
-u user:用來設定某個使用者的crontab服務,例如,“-u ixdba”表示設定ixdba使用者的crontab服務,此參數一般有root使用者來運行。file:file是命令檔案的名字,表示將file做為crontab的工作清單檔案並載入crontab。如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。-e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯目前使用者的crontab檔案。-l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示目前使用者的crontab檔案內容。-r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除目前使用者的crontab檔案。-i:在刪除使用者的crontab檔案時給確認提示。
crontab檔案的含義:
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個欄位代表一項設定,它的格式共分為六個欄位,前五段是時間設定段,第六段是要執行的命令段,格式如下:
minute hour day month week command
其中:
minute: 表示分鐘,可以是從0到59之間的任何整數。hour:表示小時,可以是從0到23之間的任何整數。day:表示日期,可以是從1到31之間的任何整數。month:表示月份,可以是從1到12之間的任何整數。week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。command:要執行的命令,可以是系統命令,也可以是自己編寫的指令檔。
crontab檔案格式
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
注意事項:
crontab檔案中執行的指令碼要寫絕對路徑。
指令碼執行用到其它環境變數時,要通過source命令引入環境變數。
在crontab檔案中, "%" 是有特殊含義,代表換行。如果需要使用需要進行轉義。