對於定時任務,一般記住命令和語法就可以應用了。
1. 命令
crontab -u 指定乙個使用者
crontab -l 列出當前使用者的所有定時任務
crontab -r 刪除當前使用者的所有定時任務
crontab -e 編輯當前使用者的任務, 可以新增,刪除乙個任務,可直接用vim進行編輯。
2. 語法
分 小時 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值範圍,0表示週日一般一行對應乙個任務)
幾個特殊符號的含義:
「*」 代表取值範圍內的數字,
「/」 代表」每」,
「-」 代表從某個數字到某個數字,
「,」 分開幾個離散的數字
知曉這些就可以自定義你想要實現的定時功能了。
以下為一些例子:
5 3 × × × test.sh 3點05時執行一下指令碼test.sh×/15 × × × × test.sh 每隔15分鐘執行一下指令碼test.sh
30 8-12 * * * test.sh 每天8到12點的第30分鐘執行以下指令碼test.sh
10 3,6,9 * * * test.sh 每天3點,6點,9點的第10分鐘執行一下指令碼test.sh
對日,月的用法與小時分鐘一樣。
3. 需要注意的問題
(1)指令碼中凡是用到路徑的地方,最好使用絕對路徑。指令碼中若呼叫其他指令碼,可以cd到相應指令碼的路徑,呼叫時使用 ./test2.sh 而不要直接使用test2.sh,否則會找不到該指令碼。
(2)若呼叫二進位制命令,例如c++生成的命令,若其有鏈結一些動態庫,如lib_boost_system.so,則要在指令碼中定義ld_library_path的值,export ld_library_path=/lusr/local/boost/lib: ,否則命令會找不到該動態庫。
(3)還有一點是,在crontab中的任務,其執行目錄是什麼,我查了一些資料,有人說是當前使用者的home目錄,未作測試,若有需求,可以用pwd命令看一下具體的目錄是什麼。
4. 還有。。。
一般來說,使用crontab -e將任務新增進去,就可以實現定時功能了。若沒有實現,則需要檢視該服務是否啟動,具體命令根據具體的linux系統版本去搜尋,在此不列出。定時任務執行完時會傳送一封郵件,若不想佔據郵箱空間,可以將輸出結果丟棄。使用 5 3 × × × test.sh>/dev/null 2>&1 「/dev/null 2>&1」表示先將標準輸出重定向到/dev/null,然後將標準錯誤重定向到標準輸出。
Linux linux定時任務crontab
crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
linux定時任務
crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...