輕鬆啟用或停用 cron

輕鬆啟用或停用 cron

每當我需要啟用 crons 時,我都會將 cron 檔案複製到 spool 資料夾中。

cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu 

這行得通嗎?我可能會遇到什麼問題嗎?

更新:使用CentOS

答案1

為特定使用者停用某些 cron 作業的官方方法是鍵入crontab -e -u <user>#在開頭新增一個註解掉。


更新

因為 cron 檔案將成為 shell 腳本的一部分。

嘗試這個:

crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron

答案2

可能工作。但..

正如之前的海報所說:不要這樣做。使用crontab -e。直接編輯文件可能可行,但不是可靠的做法。更新相關組件時,您的東西可能隨時會損壞。此外,它不是很便攜,其他系統可能會將文件儲存在不同的位置。這就像自己實作「printf」而不是使用標準的iolib。

所以,不要這樣做。

編輯:如果您需要使用 shell 腳本生成 crontab,那麼只需將您的內容通過管道輸入即可crontab(它甚至知道偽文件“-”!請閱讀手冊頁。)。

答案3

為什麼不直接使用 command crontab -e,或者如果您以 root 身份登錄,crontab -e -u shantanu呢?

答案4

如果您想掛起作業而無需重新啟動 cron(這可能會影響作業,例如每 3 分鐘運行一次),您可以使用鎖定文件,這些文件可以在腳本中輕鬆建立或刪除。

*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job

因此,要暫停作業,請使用:

touch /tmp/job.lock

透過以下方式重新啟動 cron 內的調度:

rm /tmp/job.lock

這樣做的好處是,您可以對不同的作業(或作業組,如果它們都使用相同的鎖定文件)使用不同的鎖定文件,而不必擔心因編輯(透過腳本或手動)crontab 時出現錯誤而中斷調度或破壞cron 。

相關內容