proxy配下に置いたLinkStationが,週に1回くらいハングってくれるので,ちょっといじってみたよ.
結果はどうなることやら.
sshで入れるようにする
LinkStation に ssh で root ログインできるようにする - maruko2 Note.
を参照した.
一般ユーザでログインできるようにしようとしたら,色々と抑止策が施されていて,リブートするごとに設定が巻き戻ったり(正確にはsshd再起動で巻き戻る)するので,rootでパスワードログインすることで良いことにした.
気になる人は公開鍵認証にしてはどうか.試してないけど.
あと,コマンドライン履歴にパスワードが残る運用は私の中ではあり得ないので,ファイルに書き出したのをコマンド内で呼んでいる.
あと,gつけるのは怖いので,私はsedにgはあんまつけない.ちゃんと動きそうか,catとかで確認すること.
- パスワード設定
$ IP="192.168.1.X" $ Admin_PW=$(cat admin_passwd) $ ROOT_PW=$(cat root_passwd) $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "(echo $ROOT_PW ; echo $ROOT_PW) | passwd" $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "cat /etc/sshd_config" $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/UsePAM yes/UsePAM no/' /etc/sshd_config" $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/sshd_config" $ java -jar acp_commander.jar -t $IP -ip $IP -pw $Admin_PW -c "/etc/init.d/sshd.sh restart"
- ログイン
$ ssh root@$IP
ログを探す1
どうも,/var/log/syslogがないなーと思ったら,/var/log/messagesに色々と書いてあった.
前回暴走直前の挙動を調べると,majishanzuかmDNSResponder辺りが怪しい.
- とりあえず,majishanzu を/etcで探しても見付からないので,頑張って探す.
# which majishanzu /usr/local/sbin/majishanzu # grep majishanzu /usr/local/sbin/majishanzu /etc/melco/majishanzu majishanzu_state /var/lock/majishanzu_update /etc/melco/majishanzu/ /tmp/majishanzu_dl %s/majishanzu_info /etc/melco/majishanzu/majishanzu_state majishanzu success majishanzu majishanzu start
しかし,/etc/melco/majishanzu には情報はないのであった.
- 続いて,ログの直前にtwonkyのログが出ていたので,twonkyから呼び出されているのでは?と推測.
検索したら出てきた.
Linkstation Duo LS-WXL - how to access media server confguration page (port 9050)
/usr/local/twonky-alt/ へ# cd /usr/local/twonky-alt/ # grep majishanzu * twonky.sh:MS_DL_LOCK_FILE=/var/lock/majishanzu_update twonky.sh:MAJISHANZU_DIR=/etc/melco/majishanzu (略)
grepをかけると,twonky.shで呼び出されているので,中を読む.
/usr/local/sbin/majishanzu のある時,do_majishanzuが呼ばれているようなので,元ファイルをリネームして退避すれば,もう二度と呼ばれないはず.# mv /usr/local/sbin/majishanzu /usr/local/sbin/majishanzu.bak
- ちなみに,絶対どこかから呼び出されて動作しているはず,と思ってcrontab -lで出てくるスクリプトが置いてある/etc/cron/cron,d内をgrepしてみると,ms_checkversion.shの中にtwonky.shが書かれている.
こいつは30分に1回呼ばれていた.
ログを探す2
mDNSResponderも止めておこうと調べてみると,bonjour関係のプロセスだった.
そういえばiTunesを使ってた時にwindowsでも見たことある.
面倒臭いので結論から言うと,こいつはcronではなく/etc/init.d/bonjour.shから呼ばれていて,/etc/melco/infoの中を見るとbonjour=onの設定が書かれており,bonjour.shの中でこいつがonなら…という行がstart()にあるので,/etc/melco/infoを書き換えてbonjour=offとしてみた.