bash x 분 반복 기능 [닫기]

bash x 분 반복 기능 [닫기]

speedtest다음과 같은 create라는 함수가 포함된 bash 스크립트가 있습니다 .

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분마다 실행하고 싶습니다.

답변1

function speedtest {ksh 함수 정의 구문입니다. 여기에서는 $SECONDS부동 소수점으로 설정할 수 있고 sleep1초 미만의 정확도를 가진 내장 명령이 있는 ksh93을 사용할 수도 있습니다 .

min=60
((every = 5 * min))
typeset -F SECONDS=0
t=0
while true; do
  speedtest
  sleep "$(( (t += every) - SECONDS))"
done

ksh93내장된 타임스탬프와 CSV 구문 분석/생성도 있으므로 속도 테스트 기능을 다음과 같이 작성할 수 있습니다.

function speedtest
{
  typeset -a fields
  echo "$time_min"
  speedtest-cli --csv | IFS=, read -rSA fields
  ((fields[1] /= 1e6))
  {
    printf '%(%R)T'
    printf ',%#q' "${fields[@]:0:7}"
    printf '\n'
  } > output.csv
}

zsh부동 소수점으로 설정할 수도 있지만 $SECONDS내장되어 있지 않으므로 sleep1초 미만의 절전 모드를 지원하지 않는 시스템에서는 작동하지 않습니다. 1초(센티초) 동안 잠을 자는 기능이 내장 sleep되어 있습니다.zselect

관련 정보