1. 程式人生 > >使用shell指令碼或命令列 新增crontab 定時任務

使用shell指令碼或命令列 新增crontab 定時任務

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許可權的使用者都能執行

缺點:稍微複雜