【问题标题】:How to make bash script execute command at regular intervals如何使bash脚本定期执行命令
【发布时间】:2016-12-28 10:47:46
【问题描述】:

我正在编写一个每次运行大约 30 分钟的 bash 脚本。就那部分而言,我已经让它运行稳定了。我一直在寻找一种方法,让它在运行时以每 3 分钟的间隔触发某些命令。我没有任何运气,所以我求助于那些可能比我更了解 bash 的人。

有什么建议吗?

这是我想做的事情。

START=$(date +%s);

while read LINE <&3; do
END=$(date +%s);
if [[ $(($END-$START)) > 180 || $(($END-$START)) == 180  ]]
then
$START=$(date +%s);
run command
fi
done

【问题讨论】:

标签: bash


【解决方案1】:

添加一个 cron 作业,使其每 3 分钟运行一次。

*/3 * * * * /path/to/script

【讨论】:

    【解决方案2】:
    【解决方案3】:

    你可以在后台运行一个循环:

    { while /bin/true; do some_command; sleep 180; done; } &
    loop_pid=$!
    

    然后在主脚本退出前,杀死后台循环:

    kill $loop_pid
    

    【讨论】:

      【解决方案4】:

      你也可以从同一个脚本调用同一个脚本。

      $ cat script.sh
      
      #!/bin/bash
      
      # commands
      # commands
      
      sleep 1800
      sh $0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-11
        • 2021-02-12
        • 2012-10-30
        • 2020-12-08
        • 2017-01-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多