Linux

使用 bash 腳本安裝 crontab

  • March 15, 2022

我創建了一個腳本來將兩個腳本安裝到 crontab 上。

#!/bin/bash

sudo crontab -l > mycron
#echo new cron into cron file

echo "*/05 * * * * bash /mnt/md0/capture/delete_old_pcap.sh" >> mycron #schedule the delete script
echo "*/12 * * * * bash  /mnt/md0/capture/merge_pcap.sh" >> mycron     #schedule the merge script

#install new cron file
crontab mycron
rm mycron

腳本執行,並將這兩行添加到 crontab。但是如果我再次執行腳本,它會再次添加這些行,因此我將有四行說相同的內容。我希望安裝腳本這樣執行,插入到 crontab 的行不會重複。我怎樣才能做到這一點

我建議使用/etc/cron.dover crontab

您可以在/etc/cron.d其中放置行為類似於 crontab 條目的文件。雖然格式略有不同。

例如

/etc/cron.d/pcap

*/05 * * * * root bash /mnt/md0/capture/delete_old_pcap.sh
*/12 * * * * root bash  /mnt/md0/capture/merge_pcap.sh

格式的不同之處在於添加使用者以在時間規範之後執行作業。

現在你可以簡單地檢查文件是否存在,如果你覆蓋它,也沒關係。

 

請注意,您的 cron 守護程序可能沒有/etc/cron.d. 我不知道哪個 cron 守護程序有它,但 vixie cron 是 linux 上的標準 cron 守護程序,它確實如此。

引用自:https://unix.stackexchange.com/questions/117244