![.sh 脚本中用于 cron 任务的漂亮命令](https://linux22.com/image/1347315/.sh%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%94%A8%E4%BA%8E%20cron%20%E4%BB%BB%E5%8A%A1%E7%9A%84%E6%BC%82%E4%BA%AE%E5%91%BD%E4%BB%A4.png)
我有一个需要在共享网络主机上运行的 php 脚本。我创建了一个执行 sh 脚本的 cron 作业。我的 crontab 中的命令是:
/bin/sh /home/user/script.sh
我假设它是 Bourne Shell(或兼容的程序)。脚本本身是:
#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results
我有以下问题:
我可以补充一下好的php 命令的优先级是多少?还是我需要将其添加到 cron 命令的脚本中。
哪一个更有可能起作用?
nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB
上述命令在较低优先级下可以成功运行吗?
附言:基本上,当我通过浏览器运行此脚本时,它已经使服务器过载,并且它影响了该服务器上的 APACHE,导致我的主机阻止了该文件。我反复要求他们解除阻止,以便使用不同的参数进行测试。现在我正尝试通过 cron 以较低的优先级运行它 - 希望它不会影响 APACHE。但我不想让它再次产生问题,因此我尝试使用好的。
更新:我使用了那里显示的批处理文件。我在批处理文件中的 php 之前使用了 nice 命令。唯一的区别是:
nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB
我添加了命令来运行具有相同 nice 属性的其他 php 脚本。它们全部运行正常。
感谢大家的意见@sm4rk0 的回答解决了我的问题
答案1
这两种方法都应该有效,但在我看来,像您在示例中所做的那样放入脚本中更简洁nice
。经过检查,man nice
我发现该示例的语法错误。正确的语法应该是:
nice -n 10 command
友善度的范围从 -20(最有利的调度)到 19(最不利的调度)。
而且,正如 terdon 所说,10 是默认值,因此可以省略“-n 10”。
注意:虽然 nice 会降低进程优先级,但它不会减少 CPU 负载。因此,如果唯一需要担心的原因是不要“阻塞”进程apache
,那么这种方法是可行的。但如果您的主机给您一些 CPU 时间配额,这种方法就没什么用了。