Shell-Script
通過 shell 腳本添加一次性計劃任務?
我想在給定的時間執行一次任務。
我知道我可以使用 crontab -e 將它添加到那裡,但我想通過 shellscript 來做到這一點。
crontab -e
給了我一些不可預測的臨時文件來編輯。此外,一旦任務執行,我想再次將其從 crontab 中刪除,以確保它不會留下混亂。
那麼有沒有一種標準化的方法可以通過腳本從我的個人 crontab 中添加/刪除條目?
我知道我可以推出自己的系統:有一個每分鐘執行一次的腳本,從文件夾中執行和刪除 .sh 文件,並讓我的“addtask”腳本在該文件夾中創建 .sh 文件,但在推出自己的系統之前,我想知道是否有已經是東西了。
如果重要的話,我使用 Mac OS X 和 zsh,但我想使用在其他 *nixes 上也可以使用的東西。
我認為
at
命令就是你所追求的。例如:
echo "mail -s Test mstumm < /etc/group" | at 16:30
/etc/group
這將在下午 4:30通過電子郵件向您發送一份副本。您可以在此處閱讀更多資訊:http
at
: //www.softpanorama.org/Utilities/at.shtml
添加新的 cron 作業:
newJob="/path/to/new/script.sh" newJobSchedule="0 0 * * 0 $newJob" cat <(crontab -l) <(echo "$newJobSchedule") | crontab -
刪除舊的 cron 作業:
oldJob="/path/to/old/script.sh" cat <(fgrep -i -v "$oldJob" <(crontab -l)) | crontab -
替換過時的 cron 作業:
oldJob="/path/to/old/script.sh" newJob="/path/to/new/script.sh" newJobSchedule="0 0 * * 0 $newJob" cat <(fgrep -i -v "$oldJob" <(crontab -l)) <(echo "$newJobSchedule") | crontab -
通過使用管道和重定向來避免臨時文件。