Запускать функцию bash каждые x минут

У меня есть 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
задан 17 December 2017 в 14:24

1 ответ

Кажется, вы не можете использовать cron. В этом случае вы можете использовать бесконечный цикл, который вызывает эту функцию в фоновом режиме , а затем спит в течение x минут:

while true; do speedtest & sleep 60; done

Просто убедитесь, что вы спите достаточно долго, чтобы текущий вызов speedtest завершается до окончания сна, чтобы избежать нескольких параллельных процессов.

Если вы не хотите, чтобы терминал оставался открытым при этом запуске, вы можете сделать это в сеансе screen или tmux.

2
ответ дан 17 December 2017 в 14:24

Другие вопросы по тегам:

Похожие вопросы: