別サーバにrsync †
rsync + cron + ssh (rsyncd を立てない編)
コマンドの限定 †
バックアップ先のサーバにて,rootアカウントでのsshを公開鍵に指定したコマンドに限定する./etc/ssh/sshd_configを編集する.
PermitRootLogin forced-commands-only
sshの鍵作成 †
バックアップ先のサーバにて,ssh-keygenコマンドにて2ペア(rsync用,shutdown用)のパスワード無しの鍵を作成する.
秘密鍵はUSBメモリなどでバックアップ元に移動する.
コマンドの登録 †
- 作成した公開鍵を登録する.
# cat /root/.ssh/rsync.pub >> /root/.ssh/authorized_keys # cat /root/.ssh/shutdown.pub >> /root/.ssh/authorized_keys
- rsyncのコマンドを得る
バックアップ元で実行をしたいrsyncコマンドを実行して,登録するコマンドを得る.# rsync -vv -aurvop -H --delete-e "ssh -i /root/.ssh/rsync" /home/backup/ root@remote:/home/backup/ Password: opening connection using ssh -i /root/.ssh/rsync -l root remote.example.com rsync --server -vvulHogDtprz --delete . /home/backup/
rsync以降が登録をするコマンドになる
- コマンドの登録
バックアップ先の/root/.ssh/authorized_keysの一つめの鍵の冒頭にコマンドの指定を追加する.command="rsync --server -vvulHogDtprz --delete . /home/backup/" ssh-rsa AAAA..........
また二つめの鍵にはshutdownコマンドを登録する.
command="shutdown -h now" ssh-rsa AAAA....
コマンドのテスト †
rsyncのコマンドはコマンドを得るときに使ったコマンドを実行する.(デバッグのレベルを下げてもよい)
# rsync -vv -aurvop -H --delete-e "ssh -i /root/.ssh/rsync" /home/backup/ root@remote:/home/backup/
shutdownのコマンドはsshにコマンドを追加して送信する.
# /ssh -i /root/.ssh/shutdown root@remote "shutdown -h now"
スクリプト化 †
自動的にバックアップ先のサーバが落ちている時は起動してバックアップするスクリプトを作成する.
コピー先の接続確認 †
ping $ip -c 4 if [ $? -ne 0 ]; then
WOLで起動 †
HOWTO: Set your system up for Wake On LAN (WOL)
Wake on LANを設定する
ethtoolの設定 †
常にWakeup On LANに反応するようにethtoolにてLANインターフェースのオプションを変更する.
/etc/init.d/wakeonlanconfigを作成
#!/bin/bash /usr/sbin/ethtool -s eth0 wol g exit
実行権限を与える
# chmod a+x wakeonlanconfig
スタートアップで実行されるように変更する.
#update-rc.d -f wakeonlanconfig defaults