Linux定時任務crond和crondtab
crond:作業規劃程序是Linux下用來定期執行命令或指定程式任務的一種服務或軟體。
安裝完作業系統後,預設會啟動crond任務排程服務。crond服務會定期檢查系統中是
否有要執行的任務。如果有要執行的任務便會自動執行該任務。
檢視crond服務狀態命令:
service crond status
啟動crond服務
service crond start
crondtab: crondtab是一個可以在crond服務上新增或編輯定時任務的命令。
crondtab用法:
crontab [-u user] file
crondtab [-u user] [ -e | -l | -r]
引數 | 意義 |
---|---|
-l | 檢視當前使用者的定時任務 |
-e | 編輯當前使用者的定時任務 |
-r | 刪除定時任務 |
-i | 刪除crondtab檔案內容,刪除前會有提示 |
-u | 刪指定使用使用者執行任務 |
在etc/目錄下有一個crontab檔案,這個就是系統排程的配置檔案
crontab語法格式中的特殊符號含義:
符號 | 意義 | 例子 |
---|---|---|
* | *表示任意的意思 | 0 8 * 2 * ls 表示2月份每天早上8點都執行ls命令 |
- | 表示一個區間 | 0 8-9 * 3 * ls 表示2月份每天早上8-9點都執行ls命令 |
, | 表示分隔符 | 0 8,9 * * 2 ls 表示每週二早上8點和9點執行ls命令 |
/n | 表示每n個時間單位 | 0 /1 2 *表示2月份每天的每隔一個小時都執行ls命令 |
常見的分時任務分為兩類:
1.linux系統自身定期執行的任務工作
例如:輪詢系統日誌,備份系統資料,清理系統快取
2.使用者執行的任務工作
例如:備份資料庫資料,更新時間等
編寫crondtab需要注意的問題:
1. 添加註釋
2. 定時任務中的命令和檔案一定要使用絕對路徑
3. 一條定時任務包含多條命令最好使用指令碼
4. 定時任務要先測試再寫入檔案
5. 定時任務最好不要打印出執行資訊,在後面加上>/dev/null 2>&1
拓展: /dev/null特殊字元裝置,即黑洞裝置
1>或>輸出重定向
1>>或>>追加重定向
<0或<輸入重定向
<<0或<<輸入追加重定向
2>錯誤重定向,即錯誤資訊重定向
2>>錯誤追加重定向
2>&1將標準錯誤重定向到標準輸出
0 標準輸入 1 標準輸出 2標準錯誤輸出
>/dev/null 2>&1 等價於 1>/dev/null 且2>/dev/null即將輸出都重定向到黑洞裝置
例子:
1. 使用crontab -e 編輯好定時任務。我讓每隔一分鐘向test.c檔案裡列印hello。