USB – 有線 LAN アダプターがグズって困るのでリンク監視用の bash スクリプトを書いた。
前書き
SoftEther VPN サーバー (以降 VPN サーバーと略すことあり) を自宅のパソコン (パナソニックのレッツノート) で運用していて地味に困ることがある。それはローカルブリッジ専用で使っている USB – 有線 LAN アダプター (以降 USB LAN アダプターや NIC と略すことあり) が時々グズってリンクダウンすることだ。
外出先やカフェの WiFi でネットを使うときは、パスワードなしでつなぐことができる WiFi であることが多いので、安全上、一応、自宅 VPN サーバーを経由させて通信するようにしている。
その時に、レッツノートの USB ポートに接続している USB – LAN アダプターのリンクが落ちていると困るのである。
この対策として、レッツノートのインターフェイス (USB – LAN アダプター) のリンクが UP していることを監視する bash スクリプトを書いた。
こんなスクリプトになった。
#!/bin/bash basedir="/home/hoge" bashdir="${basedir}/bash" jikoku=`date +%Y/%m/%d-%H:%M:%S` interface="enxbc5c4ce12dd4" ip link show $interface | grep -i down if [ $? -eq 0 ]; then /home/hoge/python/send_line_message.py "$jikoku に CF-S10 の $interface がダウンしたことを検知しました。" fi
ip link コマンドを実行してインターフェイスが down になったことを検知する単純なもの。
インターフェイスが down になったら send_line_message.py という Python スクリプトを呼び出して、この Python スクリプトから LINE に通知を送る仕組みにしてある。
bash スクリプトの方は crontab に登録して 5 分に 1 回自動実行させている。
*/5 * * * * /home/hoge/bash/chk_vpninterface.bash
LINE 通知は LINE Notify というサービスを使っている。詳しくは忘れてしまったがヘビーユーザーでないからか無料で使わせていただいている。
LINE Notify: https://notify-bot.line.me/ja
やっぱりまだまだ USB インターフェイスって不安定なのかなあ。レッツノートが古いからだめなのかなあ。どうなんだろう。