У меня есть 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 минут.
Кажется, вы не можете использовать cron. В этом случае вы можете использовать бесконечный цикл, который вызывает эту функцию в фоновом режиме , а затем спит в течение x
минут:
while true; do speedtest & sleep 60; done
Просто убедитесь, что вы спите достаточно долго, чтобы текущий вызов speedtest
завершается до окончания сна, чтобы избежать нескольких параллельных процессов.
Если вы не хотите, чтобы терминал оставался открытым при этом запуске, вы можете сделать это в сеансе screen
или tmux
.