2007-12-28 (金)
*研究室
先生から電話がかかってきたので,行く.資料を受け取ったり.
ついでにサーバのHDDを交換することに.とりあえず,データをバックアップ.
で,新しいHDDにFreeBSDをインストール…と思ったら,このHDD,S-ATA….気を取り直して別のHDDを持ってきて,インストール.してデータをコピー.
なんか,エラーが出るんですけど.というか,HDDの箱に見覚えのある文字が書いてある.前に壊れて交換したHDDだった.使えるHDDはいずこに?
しかも/etc以下のバックアップ忘れてるし….
*自動バックアップ
バックアップのスクリプトを見直す.scpでリモートにバックアップするようにする.
方針としては,パスフレーズ無しのバックアップ専用の鍵を登録しておいて,cronから起動されるスクリプトで自動的にscpでコピーするようにしたい.パスフレーズ無しなので,もしも秘密鍵が記録されたファイルが盗まれると何でも出来てしまうようになる.scponlyなどのシェルを使うのも手だけど,バックアップ先は普段使っているアカウントにしたいので,それは使えない.というわけで,authorized_keysのcommandオプションで対処.
まず,パスフレーズ無しのバックアップ用のキーを生成してバックアップ先に公開鍵を転送しておきます.
ssh-keygen -N "" -f ~/.ssh/backup scp =~/.ssh/backup.pub ksk@backuphost:.
続いてバックアップ先での作業.
backup.pubをauthorized_keysに追加すればOkですが,backupディレクトリへのscp以外が出来ないようにしておきます.
mkdir backup -m 700 echo -n 'no-port-forwarding,no-X11-forwarding,no-agent-forwarding,command="scp -t backup/" ' >> ~/.ssh/authorized_keys cat backup.pub >> ~/.ssh/authorized_keys
これで設定は終わり.バックアップ元に戻って,
scp -i ~/.ssh/backup test.txt ksk@backuphost:.
とかやって,パスワード無しでバックアップ先のbackupディレクトリにコピーされれば成功.
あとは,バックアップ用のスクリプトを以下のように書いて終わり.
#!/bin/sh rm /root/backup/* tar -czf /root/backup/www.tar.gz /home/www tar -czf /root/backup/mailman.tar.gz /usr/local/mailman scp -p -i /root/.ssh/backup /root/backup/* ksk@backuphost:.
scpの-tオプションが安全なのかちゃんと確認してないのが問題かも.そもそもマニュアルに載ってないし.