時々通信できなくなるatermをコマンドラインからリブートできるならcronに入れて自動再起動できるなと思っていた。今はクライアントPC起動時にスクリプトでチェックしている。
検索してみたら、手頃な事例が。
www.minimalab.com
なるほど。ではまず手打ちで最初のcurlコマンドを実行してみる。ありゃ、Session_IDなんか返してへんぞ。Basic認証には成功しているみたいやけど。バージョンが違うのか?
もしかしたらもっと簡単なのかと思って、そこに書いてある2つめのコマンドを実行。
kazz@oscar ~# curl -u account:pass -v "http://aterm/index.cgi/reboot_main_set" --data "UPDATE_BUTTON=Reboot"
実行直後は接続が切れていたし、ログを見てもそれ以前のものがクリアされているので、成功したっぽい。WR8300Nなんてゆう骨董品だからゆるいのかも。
で、当初の目標に戻って、以下のスクリプトを10分に1回実行。5回連続してだめだったらリブート。
#!/usr/bin/php <?php $script_dir =dirname( __FILE__); require_once("${script_dir}/pass.php"); $countfile="${script_dir}/count.txt"; $logfile = "${script_dir}/check.log"; $con = `curl --head www.yahoo.co.jp|grep keep-alive`; if(strlen($con) < 50){ $count = rtrim(@file_get_contents($countfile)); $count++; if($count >4){ $ret = `curl -u $pass 'http://192.168.1.2/index.cgi/reboot_main_set' --data 'UPDATE_BUTTON=Reboot'`; file_put_contents($countfile, 0); $headers="From: nanchara@kazz.red\n"; mb_send_mail("kanchara@kazz.red","Rebooted Aterm",$ret,$headers); }else{ file_put_contents($countfile, $count); } file_put_contents($logfile, date("Y/m/d H:i")."\t$count\n", FILE_APPEND); }else{ file_put_contents($countfile, 0); } ?>
で、ソースにある「雀の往来」って何よ。
検索したら「美乳」とおなじようなおまじないらしい。ちなみに文字コードはEUC-JPだった。