如何为bash脚本指定运行时间?

时间:2014-06-16 13:41:32

标签: php bash

我一直在寻找一种在线每15秒连续运行一个PHP脚本的方法,以便我可以使用API​​管理一些帐户。我找到了一个满足我要求的脚本,如下所示:

#!/bin/bash
#This script runs every 15 seconds
#This script is ran in /etc/rc.local (startup)

while (sleep 15 && php test.php) &
do
    wait $!
done 

此脚本运行良好,每15秒运行一次。但是,现在我想修改脚本,以便

  1. 执行脚本已经在做的事情
  2. 每隔5分钟运行第二个脚本
  3. 有没有办法修改当前的while循环以便我可以实现这个目的?谢谢!

3 个答案:

答案 0 :(得分:1)

如果你真的想使用循环

永远运行直到你终止它,尽管你也会这样做。

将睡眠更改为您想要的任何时间间隔,我只是将此设置为1。

设置if语句并使用模数来设置每个语句的时间范围,也可能希望在最高时间0中将计数设置回if以阻止它变得太大。

您可以根据需要添加任意数量的内容:)

#!/bin/bash

while (true)
do
    sleep 1
    if (( count % 15 == 0 )) ;then
            php test.php
    fi
    if (( count % 300 == 0 )); then
            SecondScript
            count=0
    fi

     (( count = count +1 ))


done

答案 1 :(得分:0)

做这类事情的正确方法是通过“Cron Job”。

  

软件实用程序Cron是类Unix的基于时间的作业调度程序   电脑操作系统。设置和维护软件的人   环境使用cron来调度作业(命令或shell脚本)   在固定的时间,日期或间隔定期运行。

来源:http://en.wikipedia.org/wiki/Cron

有用的来源:How to get a unix script to run every 15 seconds?

答案 2 :(得分:0)

有更好的方法可以做到这一点,因为PHP需要和HTTP请求来运行该文件。

  1. 运行cron作业以每隔一定时间间隔运行此请求(不推荐)
  2. 使用另一个程序,如python,可以运行守护进程来执行此操作
  3. 每次请求页面时进行计算(建议并且几乎总是可行)