バックアップスクリプト改良

Pocket

 朝起きてみるとayanから道具眼のサーバーがおかしいのでは?とMessengerでメッセージが入っていた。ウチでaliasしているメールアドレスがエラーになるとのこと。naokAもブログが書けないらしい。そのアドレスにはとある経緯があって「どうせアドレスを間違えているんじゃねぇの?」と疑いつつAliceにログイン。あれ、弾かれるぞ?どうもDisk Fullになっているらしい。
 AliceがDisk Fullになるのは相場が決まっている。NFSでマウントしてrsyncでバックアップをとってるLinkStationのHazukiが問題を起こしてるからだ。調べると電源が落ちてる。あー、昨日ブレーカーが落ちた時に復帰してなかったんだ。
 現在は毎朝4時にシェルスクリプトでHazukiを/mnt/hazuki/下にマウントして、そこにバックアップを書き出す。ところがスクリプトが手抜きなので、マウント成功かどうかをチェックしてなかった。UNIXをご存じな方は知ってると思うが、マウントに失敗してもローカルのHDDに普通に読み書きできてしまうので、スクリプトは自分自身のHDDにバックアップを始めてしまう。おかげであっという間に空き容量が食われてしまう訳だ(rsyncで同期していても、バックアップ先が空なのでフルコピーされる)。
 いつもはこの状態でもログインだけはできてたのに。ログインできないとファイルを消す作業もできないので焦ったが、hkondo氏のアドバイスに従い、物置からアナログCRTを引っ張り出してきてつなぎ、キーボードはUSBのものをMacから引っこ抜いてきて無事コンソールでログイン。ファイルを削除。
 再発防止のためにスクリプトを改良してみた。-dコマンドを使って、マウント後なら見えるはずのディレクトリが存在しているかどうかチェック。そのままスクリプトを終了してしまうとバックアップが行われないままになってしまうので、else節に警告メール(hazuki_down.txt)を送信するように設定してみた。

#! /bin/sh
mount /mnt/hazuki/
if [ -d /mnt/hazuki/etc/ ]; then
 /usr/bin/rsync -av –delete /home/ /mnt/hazuki/home/
 以下、rsync群がズラっと…
else
 mail furuta@aika.do-gugan.com < hazuki_down.txt fi

umount /mnt/hazuki/

 それにしてもこういう時にモニタがないのは不便だなぁ。というかCRTを担いでくるのが大変。かといって普段からつなげておく場所もないし。いっそこういうの→を買ってみようか。CD-ROMドライブなどを入れる5インチベイにスッポリ収まる4インチ液晶モニタ。ちょうどベイ空いてるし。でもこれで5万は高いよなぁ。うーむ。


 さて、容量を空けたら無事に動作復旧したようで、ayanにメールの再送を依頼。え?まだダメ??って、やっぱりアドレス間違ってんじゃんっ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)