linux定時任務crontab

2022-02-14 11:42:42 字數 1332 閱讀 5515

對於定時任務,一般記住命令和語法就可以應用了。

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 每...