Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AndroidスマートフォンのTermuxでモバイル回線の速度を定期的に計測

 AndroidスマートフォンのTermuxでモバイル回線の速度を定期的に計測

"LILO&東海道らぐオンラインミーティング 2022-08-27 - connpass" https://lilo.connpass.com/event/256919/
source: https://gitlab.com/matoken/lilo_tokaido-2022.08/-/blob/main/slide/slide.adoc

Kenichiro MATOHARA

August 27, 2022
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. Termux導入 Termux導入 F-Droid, Google Playから入手可能(同じストアから導入するこ と) 好みのストアから Termux & Termux:API

    を導入 Termux | F-Droid - Free and Open Source Android App Repository Termux:API | F-Droid - Free and Open Source Android App Repository Termux - Google Play のアプリ Termux:API - Google Play のアプリ 7 / 21
  2. Termux:APIを有効に Termux:APIを有効に api pkg導入(Termux上で実行) $ pkg install termux-api $ dpkg

    -L termux-api | grep bin/ | cut -d/ -f8 | tr "\n" " " ; echo termux-infrared-frequencies termux-storage-get termux-contact-list termux-notification-list termux-clipboard-set termux-wallpaper termux-speech-to-text termux-volume termux-vibrate termux-api-start termux-torch termux-infrared-transmit termux-camera-photo termux-wifi-enable termux-share termux-sensor termux-sms-inbox termux-notification termux-api-stop termux-tts-spe termux-sms-send termux-media-scan termux-call-log termux-job-scheduler termux-notification-rem termux-dialog termux-camera-info termux-battery-status termux-location termux-clipboard-get termux-download termux-microphone-record termux-usb termux-wifi-scaninfo termux-brightness termux-sms-list termux-keystore termux-tts-engines termux-nfc termux-toast termux-media-player termux-wifi-connectioninfo termux-fingerprint termux-audio-info termux-telephony-cellinfo termux-telephony-call termux-telephony-deviceinfo Android端末をshellで操作できるTermux:APIで遊んでみた – matoken’s meme 8 / 21
  3. Termuxパッケージ内にgo製の Termuxパッケージ内にgo製の Speedtestツールがあった Speedtestツールがあった $ pkg search speedtest : litespeedtest/stable

    0.11.2 aarch64 A simple tool for batch test ss/ssr/v2ray/trojan servers speedtest-go/stable,now 1.1.5 aarch64 [installed] Command line interface to test internet speed using speedtest.net $ pkg install speedtest-go 10 / 21
  4. speedtest-go speedtest-go Speedtestが使えるようになった :) $ speedtest-go Testing From IP: 180.131.110.140,

    (freebit) [34.6988, 137.7338] Target Server: [8407] 178.07km Sagamihara (Japan) by Allied Telesis Capital Corporation Latency: 171.96098ms Download Test: ............. Upload Test: ......................... Download: 1.43 Mbit/s Upload: 0.67 Mbit/s $ speedtest-go --json {"timestamp":"2022-08-26 17:44:27.456","user_info":{"IP":"180.131.110.140","Lat":"34.6988","Lon 11 / 21
  5. 適当なscriptを用意 適当なscriptを用意 1 端末利用時に気づくようにトーストメッセージを表示 2 自宅ネットワークじゃなければ終了 3 Wi-Fi down(mobile利用に切り替え) 4

    Speedtest実行&ログファイルに追記 5 Wi-Fi up $ cat ~/speedtest-mobile.sh #!/bin/sh termux-toast 'termux speedtest start' if [ "$( termux-wifi-connectioninfo | jq -r .ssid )" != "matoken" ]; then termux-toast "Not home network?" exit 1 fi termux-wifi-enable false sleep 3 speedtest-go --json >> speedtest.log termux-wifi-enable true down=$( tail -1 ./speedtest.log | jq -r ".servers[].dl_speed" ) up=$( tail -1 ./speedtest.log | jq -r ".servers[].ul_speed" ) termux-toast "termux speedtest done( D:${down} / U:${up}" 1 2 3 4 5 12 / 21
  6. scriptに必要&書くのに便利なア scriptに必要&書くのに便利なア プリ等 プリ等  dropbear(sshd)起動例 dropbear -w -T 2

    -j -k -p 2222 -I 600 Wi-Fi切断されるたびにsshつなぎ直しめんどい,Tailscale等 が使えるかも → Connection timed out $ pkg install vim shellcheck byobu jq iproute2 dropbear Android端末にTermux + Dropbearでssh login – matoken’s meme 13 / 21
  7. 定期実行(crontab) 定期実行(crontab) 1 パッケージ導入(crond & Termux runitサービス管理) 2 Termuxでcrondを有効にする 

    OS起動時に実行するには恐らく Termux:Boot が必要 Termux-services - Termux Wiki $ pkg install cronie termux-services $ sv-enable crond $ ps ax | grep cron 2950 ? S< 0:00 crond -n -s 9113 ? S< 0:00 runsv crond 9114 ? S< 0:00 svlogd -tt /data/data/com.termux/files/usr/var/log/sv/crond 1 2 14 / 21
  8.  Termux:Taskerでもいけるかも? Termux:Tasker | F-Droid - Free and Open Source

    Android App Repository Termux:Tasker - Google Play のアプリ 15 / 21
  9. crontab設定 crontab設定 普通に設定 $ EDITOR=vim crontab -e $ crontab -l

    # m h dom mon dow command 58 * * * * ~/speedtest-mobile.sh >> ~/cron.log 16 / 21
  10. しばらく動かしてみる しばらく動かしてみる 時間はGMT(JST-9) Wi-Fi繋がってても <unknown ssid> となることが多い?Wi-Fiチ ェックを無くす Speedtestの計測によく失敗? Warning:

    Cannot fetch user information. is temporarily unavailable. いまいち安定しない? $ cat ./speedtest.log | grep -v ^Warning: | jq -r "[.timestamp, (.servers[] | .dl_speed, .ul_sp "2022-08-26 16:17:48.440",2.202641611466925,0.9184620958458929 "2022-08-26 16:41:49.629",6.6323484748505965,4.008532137940591 "2022-08-26 16:50:10.323",5.824829542442537,4.043446096442532 "2022-08-26 17:59:07.354",6.637869230045927,2.411257148102115 "2022-08-26 22:55:09.292",5.7409426585770555,4.324557085233042 "2022-08-26 22:59:01.373",6.603976797906354,1.146996082563272 http://www.speedtest.net/speedtest- config.php 18 / 21
  11. 止める 止める そのままだとギガが減るので止める $ EDITOR=vim crontab -e $ EDITOR=vim crontab

    -l # m h dom mon dow command #58 * * * * ~/speedtest-mobile.sh >> ~/cron.log $ sv-disable crond 19 / 21