1. 程式人生 > >crond和crontab 自我理解

crond和crontab 自我理解

crond;crontab;計劃任務;

crond是linux系統中用來定期執行命令或指令程序的一種服務或軟件。

crond的概念和crontab是不可分割的。crontab是一個命令,常見於Unix和類Unix的操作系統之中,用於設置周期性被執行的指令。該命令從標準輸入設備讀取指令,並將其存放於“crontab”文件中,以供之後讀取和執行。

其中crond的基本常用命令含義如下:

crontab -e 編輯某個用戶的crond服務(編輯任務計劃) crontab -e = vim /var/spool/cron/root(用戶名)

crontab -l 列出某個用戶的crond的詳細內容(已經做好的任務計劃)

crontab -u 設定編輯某個用戶的crond服務(設定編輯某個用戶的的任務計劃) 格式: crontab -u 用戶 -e

crontab -r 刪除某個用戶下的crond服務(刪除做好的任務計劃)

linux系統任務中定時任務調度工作可以分為兩種情況:

1、linux系統自身定期執行的任務工作,系統周期自行執行的任務工作。如輪詢系統日誌、備份系統數據、清理系統緩存等,這些任務無需我們認為幹預。

2、用戶執行的任務工作

定時軟件種類:

1、at :適合執行一次就結束的調度任務,對應的是atd服務。

2、crond : 適合執行周期性的任務計劃

3、anacron :這個命令主要用於非7*24小時開機的服務器準備的,以天為周期或者以開機為周期,將所有停機之間未做的任務計劃全部都做一遍。

crontab -e 編輯模式詳解:

* * * * * 需要執行的命令或腳本

分(00—59) 時(00—23) 日(01—31) 月(01—12) 周(0—6(0=7))

(以上五個星代表五個時間字段,其含義對應下方解釋)

例:每周六,周日上午九點運行shell腳本a.sh

00 09 * * 6,0 /bin/sh a.sh

針對crontab -e 編輯中的註意事項:

1、定時任務最好加上註釋,這樣方便其他人知道這條計劃任務的作用,方便做任務交接。

例: 創建時間 創建人 創建目的

2、定時任務最好使用腳本進行執行

3、在每一個定時任務後最好加 >/dev/null 2>&1 (因為短時間會沒影響,長時間會占用inode過多,造成其他文件無處可放)

4、執行shell腳本任務前一定要加 /bin/sh


5、生產任務程序不要隨意打印輸出信息

6、系統環境變量問題,,,系統默認環境變量定時任務有時會取不到,造成計劃任務失敗(命令行執行是可以成功的,腳本執行就是失敗)

針對計劃任務建議:

技術分享圖片


crond和crontab 自我理解