(ps:如果您的job出現死活不執行,請看1.5注意事項可能會有幫助 )
crontab 服務
服務操作說明:
service crond start //
啟動服務
service crond stop //
關閉服務
service crond restart //
重啟服務
service crond reload //
重新載入配置 1
)在/etc/crontab
配置檔案中配置(
個人比較喜歡)
例如:
crontab
中的cron
表示式最小只能到分鐘,沒有秒,
* * * * *
表示每分鐘執行一次
(注意上面的最後乙個被#號注釋掉了,如果要執行需要刪除#號)2)用
crontab
命令新增
命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
-u user
:用來設定某個使用者的
crontab
服務,如果不指定使用者,則表示編輯當前使用者的
crontab
檔案。
file
:file
是命令檔案的名字
,表示將
file
做為crontab
的任務列表檔案並載入
crontab。
-e:編輯某個使用者的
crontab
檔案內容。如果不指定使用者,則表示編輯當前使用者的
crontab
檔案。
-l:顯示某個使用者的
crontab
檔案內容,如果不指定使用者,則表示顯示當前使用者的
crontab
檔案內容。 -r
:從/var/spool/cron
目錄中刪除某個使用者的
crontab
檔案,如果不指定使用者,則預設刪除當前使用者的
crontab
檔案。
檢視日誌看某個
job有沒有執行或報錯
tail -f/var/log/cron。
每條任務排程執行完畢,系統都會將任務輸出資訊通過電子郵件的形式傳送給當前系統使用者,這樣日積月累,日誌資訊會非常大,可能會影響系統的正常執行,因此,將每條任務進行重定向處理非常重要。
例如,可以在
crontab
檔案中設定如下形式,忽略日誌輸出:
0 */3 * * * root /bin/sh /root/desktop/test.sh >/dev/null 2>&1
/dev/null 2>&1
表示先將標準輸出重定向到
/dev/null
,然後將標準錯誤重定向到標準輸出,由於標準輸出已經重定向到了
/dev/null
,因此標準錯誤也會重定向到
/dev/null
,這樣日誌輸出問題就解決了。
1、/etc/crontab
配置的時候,指定
shell
指令碼檔案時要用絕對路徑! 2
、shell
指令碼中所有命令以及檔案也全部要用絕對路徑! 3
、如果shell
指令碼死活不執行,但是手動呼叫卻可以,就考慮是不是環境變數的問題。1和
2其實就可以歸結為環境變數問題。
在crontab
檔案中定義多個排程任務時,需要特別注環境變數的設定,因為我們手動執行某個任務時,是在當前
shell
環境下進行的,程式當然能找到環境變數,而系統自動執行任務排程時,是不會載入任何環境變數的,因此,就需要在
crontab
檔案中指定任務執行所需的所有環境變數,這樣,系統執行任務排程時就沒有問題了。
可以在指令碼中加上環境變數
!/bin/sh
source /etc/profile ……
4、如果要定義乙個定時重啟系統的任務,就必須將任務放到
/etc/crontab
檔案,即使在
root
使用者下建立乙個定時重啟系統的任務也是無效的。
Linux中用crontab例行工作安排
linux中用crontab例行工作安排 1.什麼是crontab?週期性的處理待辦事項的守護程序,類死任務計畫。2.crontab命令解析。示例 0 0 1 5 cd home hiperry shutdwon.sh logs shutdwon.log 2 1 每天晚上十二點執行自定義的關機指令碼...
linux使用crontab實現PHP執行定時任務
首先說說cron,它是乙個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 crontab 都被儲存在 var spool cron 目錄中,並使用建立它們的使用者身份來執行。要以某使用者身份建立乙個 crontab 專案,登入為...
Linux使用crontab實現PHP執行定時任務
安裝crontab yum install crontabs說明 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin service crond restart 重啟服務 sbin service crond reload ...