speedtest 다운로드 속도 결과를 indicator-sysmonitor 에 주기적으로 표시하고 싶습니다 .
speedtest-cli를 실행하면 출력이 다소 줄어 듭니다.
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
다운로드 속도 수치만으로 출력을 더욱 트리밍 할 수있는 방법이 있습니까?
speedtest 다운로드 속도 결과를 indicator-sysmonitor 에 주기적으로 표시하고 싶습니다 .
speedtest-cli를 실행하면 출력이 다소 줄어 듭니다.
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
다운로드 속도 수치만으로 출력을 더욱 트리밍 할 수있는 방법이 있습니까?
답변:
speedtest-cli
파이썬 프로그램 및 라이브러리와 마찬가지로 다운로드 테스트 만 수행하고 출력을 인쇄하는 최소한의 대체 프로그램을 만드는 것은 매우 쉽습니다.
편집기를 열고 다른 이름으로 저장 dl-speedtest.py
import speedtest
s = speedtest.Speedtest()
s.get_config()
s.get_best_server()
speed_bps = s.download()
speed_mbps = round(speed_bps / 1000 / 1000, 1)
print(speed_mbps)
와 함께 실행 python dl-speedtest.py
이것은 요청에 따라 소수점 이하 1 자리로 반올림 된 부동 소수점 숫자 Mbps 로 결과를 bps로 나타냅니다.
이것이 작동하기위한 speedtest-cli의 최소 버전은 1.0.0 pip install speedtest-cli --upgrade
입니다. 업그레이드하는 데 사용해야 할 수도 있습니다 .
그것은 직업입니다 awk
:
speedtest-cli --simple | awk 'NR==2{print$2}' # just the numeral
speedtest-cli --simple | awk 'NR==2{print$2" "$3}' # numeral and unit
NR==2
– 줄을 2
{print$2}
– 두 번째 열을 인쇄합니다 (기본적으로 공백으로 구분됨){print$2" "$3}
– 두 번째 열 뒤에 공백과 세 번째 열을 인쇄하십시오.와 sed
그것의 조금 더 복잡 :
speedtest-cli --simple | sed '/D/!d;s/.* \(.*\) .*/\1/' # just the numeral
speedtest-cli --simple | sed '/D/!d;s/[^ ]* \(.*\)/\1/' # numeral and unit
/D/!d
– 포함 된 행을 검색하고 그 행을 빼지 D
않고 ( !
) d
다른 행을 찾습니다s/A/B/
– s
ubstitute A
withB
.*
– 모든 것을 가져 가라[^ ]*
– ^
공간이 아닌 모든 것을 가져 가라␣
(공백 문자) – 리터럴 공간\(…\)
-모든 것을 안에 넣고 그룹으로 저장\1
– 그룹 1의 내용을 얻는다
--no-upload
옵션을 사용 하여 업로드를 표시하지 않을 수도 있습니다.