我创建了一个脚本来在 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 守护进程,它确实如此。