是否可以在用户的 crontab 中放置“if”语句,或者是否有另一种合理的方式来组织大量有条件的 cron 作业?从最终用户的角度来看,如果他们可以使用普通的 crontab 并且尽可能将他们的条目放在两行之间,那将是最简单的。
理想情况下是这样的:
if [ something ]; then
* * * * * /usr/bin/php /path/to/file.php
0 0 * * * /usr/bin/php /path/to/file2.php
*/5 * * * * /root/script.sh
fi
Run Code Online (Sandbox Code Playgroud)
Per*_*rgk 11
不可能做到这一点。
但是,您可以做的是制作一个类似的脚本/usr/local/bin/check_live- 如果服务器当前处于活动状态,则以状态代码 0 退出,如果不是,则非零。
然后,您可以使用 crontab 行,例如:
* * * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file.php
0 0 * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file2.php
*/5 * * * * /usr/local/bin/check_live && /root/script.sh
Run Code Online (Sandbox Code Playgroud)