crond和crontab 自我理解
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 自我理解