使用shell指令碼或命令列 新增crontab 定時任務
阿新 • • 發佈:2018-12-27
crontab 是運維過程中常用的定時任務執行工具
一般情況下在有新的定時任務要執行時,使用crontab -e ,將開啟一個vi編輯介面,配置好後儲存退出,但是在自動化運維的過程中往往需要使用shell指令碼或命令自動新增定時任務。接下來結束三種(Centos)自動新增的crontab 任務的方法:
方法一:
編輯 /var/spool/cron/使用者名稱 檔案,如:
echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root
優點:簡單
缺點:需要root許可權
方法二:
編輯 /etc/crontab 檔案,
echo "* * * * * root hostname >> /tmp/tmp.txt" >> /etc/crontab
需要注意的是,與常用的crontab 有點不同,/etc/crontab 需指定用名。而且該檔案定義為系統級定時任務 不建議新增非系統類定時任務,編輯該檔案也需要root許可權
方法三:
利用crontab -l 加 crontab file 兩個命令實現自動新增
crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
由於crontab file會覆蓋原有定時任務,所以使用 crontab -l 先匯出原有任務到臨時檔案 “conf” 再追加新定時任務
優點:不限使用者,任何有crontab許可權的使用者都能執行
缺點:稍微複雜