我有一个脚本和配置文件。
- 配置文件包含有关脚本是否运行(启用或禁用)的信息。
- 如果启用,脚本必须按照预定的间隔运行。
我可以编写一个 cron 作业来以预设的时间间隔运行脚本,并且当脚本运行时我可以读取配置文件,如果未启用,那么我可以退出。
但是,我正在寻找一种更方便的方法来做到这一点。有没有办法告诉 cron 本身这个作业在启动时没有激活?因此,如果未启用(或其他情况),cron 将不会启动该作业。或者是否可以在运行时启用/禁用作业?
提前致谢。
答案1
啊,现在我明白了!这是一个相当常见的要求:
您需要做的只是测试给定文件是否存在,而不是其内容。例如,如果您想运行 cron 作业,请在您的主目录中创建一个文件:$ touch /home/you/cronjob_enable
。
然后编辑您的用户 crontab:
$ crontab -e
*/5 * * * * /bin/bash -c 'test -e /home/you/cronjob_enable && /home/linux/test.sh'
就是这样。只要文件存在(无论是否为空,都无关紧要)并且您有运行的权限/home/linux/test.sh
,脚本test.sh
就会运行。
当您删除文件时/home/you/cronjob_enable
,脚本 test.sh 将不会执行。