$30 off During Our Annual Pro Sale. View Details »

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. Androidスマートフ Androidスマートフ ォンのTermuxでモ ォンのTermuxでモ バイル回線の速度 バイル回線の速度 を定期的に計測 を定期的に計測 Kenichiro Matohara(matoken)

    <maroken@kagolug.org> 1 / 21
  2. 南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) Kenichiro Matohara(matoken) https://matoken.org https://matoken.org

    2 / 21
  3. Linux User Groupによく居ます Linux User Groupによく居ます 東海道らぐ 次回2022-08-27 LILO 次回2022-08-27

    小江戸らぐ 次回2022-09-10 鹿児島らぐ 次回2022-09-18 3 / 21
  4. 回線をどうしよう 回線をどうしよう 現在ADSLだが2023年01月で提供終了な地域 Flets光は圏内だがちょっと高い? モバイル回線の使い放題プランの安いものと普通のものを併用? docomo/auは電波ギリギリで室内ではほとんど通信できない SoftBank(LINEMO)は圏内だが遅いような? 手動で偶に計測すると深夜や早朝でも速度がいまいち?(街に出る と速い) 定期的にSoftBankの速度を計測してみる

    4 / 21
  5. SoftBank(LINEMO) SoftBank(LINEMO) Android端末にSIMを刺している USBテザリング可能 → PCで計測? Termuxでscriptを書けばAndroid端末単体で計測できるのでは? < 今回はコレ 5

    / 21
  6. Termux Termux TermuxはAndroid上でLinux環境を構築するアプリケーション 独自パッケージなので普通に使うには一般出来なディストリビュー ションの使えるもののほうがいい? TermuxにはTermux:APIというアプリを追加することでAndroid のいくつかの機能を触れるようになる Termux:APIでWi-Fi off →

    モバイル回線切り替わり → speedtest → Wi-Fi Onを定期的に実行できるのでは? 6 / 21
  7. 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
  8. 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
  9. SpeedtestのCLIコマンドを入手 SpeedtestのCLIコマンドを入手 動かない?バイナリしか無い…… Speedtest CLI:コマンドライン用のインターネット速度テスト $ ./speedtest [2022-08-26 10:37:05.502] [error]

    Trying to get interface information on non-initialized socke Bad system call 9 / 21
  10. 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
  11. 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
  12. 適当な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
  13. 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
  14. 定期実行(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
  15.  Termux:Taskerでもいけるかも? Termux:Tasker | F-Droid - Free and Open Source

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

    # m h dom mon dow command 58 * * * * ~/speedtest-mobile.sh >> ~/cron.log 16 / 21
  17. 電池の制限解除 電池の制限解除 アプリの電池の利用状況 バックグラウンドでの使用の制限 → アプリのバックグラウンドでの 電池使用可 電池の最適化 → 最適化しないアプリ

    17 / 21
  18. しばらく動かしてみる しばらく動かしてみる 時間は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
  19. 止める 止める そのままだとギガが減るので止める $ 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
  20. まとめ まとめ Termuxまだバグ多い感じがするけどTermux:API経由でshellか らAndroidを操作できるのは便利 今回は,トースト,Wi-Fi状態確認,Wi-Fi on/off しかし今回は安定度がいまいち……(PCで計測し直し?) ShellScriptをタッチパネルで書くのは辛い,外部キーボードかssh 接続でリモート操作推奨 目的のモバイル回線はやっぱり遅い感じ(多分バックボーンが3Gのま

    ま) UpはADSLより少し速いけどDownはむしろ遅いことも 回線どうしようかな…… 20 / 21
  21. 奥付 奥付 発表 発表者 利用ソフトウェア ライセンス LILO&東海道らぐオンラインミーティング 2022-08-27 - connpass

    Kenichiro Matohara(matoken) Asciidoctor Reveal.js CC BY 4.0 21 / 21