.sh 脚本中用于 cron 任务的漂亮命令

.sh 脚本中用于 cron 任务的漂亮命令

我有一个需要在共享网络主机上运行的 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 时间配额,这种方法就没什么用了。

相关内容