每 x 分钟运行一次 bash 函数

每 x 分钟运行一次 bash 函数

我有一个名为 created 的函数的 bash 脚本,speedtest如下所示:

function speedtest
    {
            echo $time_min; 
            echo $(date +%R),"$(speedtest-cli --csv)" >>temp.csv # Outputs van datum en speedtest in temp.csv
            cut -d, -f1,8 < temp.csv >> output2.csv; # Verwijderd onnodige info uit temp en plaatst het in output.csv
            awk -F , -v OFS=, '$3/=1000000' <output2 >output2.csv # Zet bits/s om naar Mbp/s
            rm temp.csv;
    }

我希望此函数精确运行 x 分钟。请注意,此函数需要一些时间才能运行。如果我每 x 分钟运行一次,这与运行它、休眠 x 分钟然后再次运行它不同。我希望每 x 分钟精确启动一次此函数。

答案1

似乎您不能使用 cron。在这种情况下,您可以使用无限循环调用此函数在背景中然后睡x几分钟:

while true; do speedtest & sleep 60; done

只需确保睡眠时间足够长,以便当前speedtest调用在睡眠结束之前终止,以避免进程的多个实例并行运行。

如果您不想在运行此程序时保持终端打开,您可以在screentmux会话中执行此操作。

相关内容