1. 程式人生 > >Linux定時任務crond和crondtab

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。
這裡寫圖片描述