使用 bash 脚本安装 crontab

Jis*_*air 12 linux bash cron

我创建了一个脚本来在 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
Run Code Online (Sandbox Code Playgroud)

脚本运行,并将这两行添加到 crontab。但是如果我再次运行脚本,它会再次添加这些行,因此我将有四行说相同的内容。我希望安装脚本运行时插入到 crontab 的行不会重复。我怎样才能做到这一点

phe*_*mer 22

我建议使用/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
Run Code Online (Sandbox Code Playgroud)

格式的不同之处在于在时间规范之后添加用户来运行作业。

现在您可以简单地检查文件是否存在,如果您覆盖它,则无所谓。

 

请注意,您的 cron 守护程序可能没有/etc/cron.d. 我不知道哪个 cron 守护进程有它,但 vixie cron 是 linux 上的标准 cron 守护进程,它确实如此。