【问题标题】:How to use bash file in centos crontab如何在 centos crontab 中使用 bash 文件
【发布时间】:2018-07-18 10:01:06
【问题描述】:

我想每分钟从 crontab 运行 50 个 php 页面,最好的方法是什么 在 crontab 中插入每一个或使用 bash 从一个玉米中加载所有内容 这是我需要的例子

1 * * * * /usr/bin/php /var/www/folder/page.php?id=1
1 * * * * /usr/bin/php /var/www/folder/page.php?id=2
1 * * * * /usr/bin/php /var/www/folder/page.php?id=3
etc ...

所以我可以在 crontab 或 bash 文件中使用像 ?id=1 这样的查询链接

谢谢

【问题讨论】:

  • 我觉得你应该看看系统的设计
  • 为什么要加入 bash,你可以用 php 来做这一切
  • 由于我们不知道脚本运行需要多长时间,因此可能会导致系统上有很多进程。考虑到脚本需要 2/3 秒才能运行,当通过 cron 的新迭代开始时,每次迭代仍将运行。从长远来看,对系统性能没有多大好处。你会得到一个积压的日志

标签: php bash cron centos


【解决方案1】:

您可能应该寻找每分钟运行 50 个脚本的替代方法。正如Ed Heal 指出的那样,可能有更好的方法来设计系统以执行您想要执行的任何操作。

不管怎样,这里有一个单独的 bash 脚本,它按顺序运行这 50 个命令:

#!/bin/bash
for i in {1..50}
do
    /usr/bin/php "/var/www/folder/page.php?id=$i"
done

或者,并行运行这 50 个进程:

#!/bin/bash
for i in {1..50}
do
    echo "/usr/bin/php '/var/www/folder/page.php?id=$i'"
done | parallel

这要求您安装了 GNU 并行。有关如何针对您的系统和要求优化parallel 的信息,请参阅man parallel

【讨论】:

  • 并行运行这些脚本怎么样?
  • @EdHeal GNU 并行是一个很好的建议。已更新答案以添加并行示例。
  • @Ed Heal 嗨 EdHeal 到目前为止,如果有可能帮助我,我还没有做任何事情,我将非常感谢你
【解决方案2】:

John1024 的 GNU Parallel 示例的较短版本:

parallel /usr/bin/php /var/www/folder/page.php?id={} ::: {1..50}

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2014-03-15
    • 2016-07-11
    • 2012-07-02
    • 2020-01-15
    • 2018-07-14
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    相关资源
    最近更新 更多