rsyncとsshで安全にバックアップをする
サーバーのファイルをバックアップする方法
バックアップ元のサーバーの設定
rootアカウントでsshにログインできるように設定を変更
# vi /etc/sshd/sshd_config
PermitRootLogin yes
※ yes でなく forced-commands-only でも可
設定の反映
# service sshd restart
※iptablesを起動している場合はポートも空けておきましょう。
公開鍵をおくディレクトリの設定
# mkdir /root/.ssh/
# chmod 700 /root/.ssh/
バックアップサーバーの設定
バックアップサーバーからバックアップ元サーバーへ、sshにパスフレーズなしで、ログインできるようにする
# ssh-keygen -t rsa
すべてエンターでOK
公開鍵をバックアップ元サーバーへコピーする
# scp /root/.ssh/id_rsa.pub メイン側のホスト名:/root/.ssh/
パスワードの入力が必要
バックアップ元のサーバーの設定
# mv /root/.ssh/id_rsa.pub /root/.ssh/authoried_keys
# chmod 600 authoried_keys
SSHにパスフレーズなしでログインできるかテスト
# ssh バックアップ元サーバーIP
上記コマンドでパスワードを聞かれなければ設定は完了です。
rsyncを使ってバックアップ
バックアップ元サーバーの/homeディレクトリをすべてバックアップサーバーの/backupディレクトリへコピーする
# rsync -avz -e ssh バックアップ元サーバーIP:/home /backup
rsynkを使ってサーバーの情報を同期させる
# rsync -avz -e ssh --delete バックアップ元サーバーIP:/home /backup
通信が途中で途切れる場合は以下のオプションで実行してみる
# rsync -av -e ssh --delete --bwlimit=8192 --timeout=600 バックアップ元サーバーIP:/home /backup
参考サイト
- rsync
- 人力検索はてな
- 自動バックアップ運用
- rsync+sshでバックアップ
- rsync+sshでのバックアップが途中で止まってしまう
- [rsyncのバックアップと送信を自動化するスクリプト http://www.lockon.co.jp/blog/cat10/rsync.html]
- rsync openssh cron 自動バックアップ構築メモ