ubuntu/data_backup

Posted コメントするカテゴリー: ubuntu

別サーバに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