UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS rsync+ssh



rsync+sshでバックアップを設定します。世の中には何百万もするようなバックアップソフトがいろんなメーカーから発売されておりますがLinuxを前提としたバックアップであれば私的にはrsyncが最も優れていると思います。属性などのパーミッションなどの情報も合わせてバックアップすることが可能でありスクリプトなどを自作すれば幾らでも融通のきくバックアップシステムが構築可能だからです。

また、lsyncと組み合わせることでリアルタイムミラーリングなども構築可能です。
ここでは以下のような前提で話を進めます。

・ホストA 192.168.1.1 ( バックアップサーバ )
・ホストB 192.168.1.2 ( バックアップクライアント )
・rsyncはssh経由で通信を行う

まず、バックアップサーバにrsyncをインストールしておき、rsyncコマンドが使える状態にしておきます。

# yum install rsync
# rpm -qa | grep rsync
rsync-3.0.6-9.el6.x86_64



■sshの設定


ssh経由でrsyncバックアップを行いますのでsshの設定が必要です。この作業はバックアップサーバ側で設定を行います。rootで下記の コマンドで公開鍵と秘密鍵を作成します。

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [そのままEnter]
Enter passphrase (empty for no passphrase): [そのままEnter]
Enter same passphrase again: [そのままEnter]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4c:50:79:5f:3a:84:5e:a8:2f:88:71:65:c4:3b:70:ed root@www.unix-power.net


公開鍵は/root/.ssh/id_rsa.pubで秘密鍵は/root/.ssh/id_rsaに保存されます。このうち公開鍵をバックアップクライアントにscp経由でコピーします。

# scp /root/.ssh/id_rsa.pub user@192.168.1.2:/home/user/ 
user@192.168.1.2's password: [userのpassword入力]
id_rsa.pub 100% 411 0.4KB/s 00:00


/home/user以下にバックアップクライアントの公開鍵がコピーされました。これを/root/.ssh/authorized_keyに以下のコマンドで追記します。


# cat id_rsa.pub >> /root/.ssh/authorized_keys
# chmod 600 /root/.ssh/authorized_keys


rootでsshログインを行いますので以下の設定をバックアップクライアント側で確認しておきます。

# vi /etc/ssh/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys


バックアップサーバからバックアップクライアントにパスワードなしでsshログインできるか確認します。

# ssh root@192.168.1.2
Last login: Mon Jan 7 14:16:08 2013 from 192.168.1.1


上記の動作確認がとれればOKです。



■バックアップの実施


バックアップはバックアップサーバからバックアップクライアントに接続してデータを引き抜くという動きになります。以下のコマンドはバックアップサーバで実施し、ssh経由でバックアップクライアントからデータを引っ張ります。

# rsync -avz -e ssh 192.168.1.2:/home/ /home/user


上のコマンドでバックアップクライアントの/home配下にあるファイルとフォルダがバックアップサーバ上の/home/user以下 に丸ごとコピーされます。rsyncコマンドで使用されるオプションには以下のものがあります。

rsnyc のオプション一覧
-v バックアップ時にバックアップしているファイル名を表示する
-r 指定したディレクトリ以下の各ディレクトリも再帰的にバックアップする
-l シンボリック・リンクをそのままにバックアップする(シンボリック・リンク先の内容をコピーせずにリンクのままコピー)
-H ハード・リンクをそのままにバックアップする
-p パーミッション属性を保存したままバックアップする
-o 所有者属性を保存したままバックアップ(root のみ可能)
-g グループ属性を保存したままバックアップ
-t タイムスタンプを保存したままバックアップ
-D デバイスファイルを保存したままバックアップ(root のみ可能)
-z データーを圧縮して転送する
-u 追加されたファイルだけバックアップする
--delete バックアップ元で削除されたファイルはバックアップ先でも削除する
-e ssh SSHの使用
--password-file パスワードファイルの指定
--existing

更新されたファイルだけをバックアップし、追加されたファイルは バックアップしない

-a 上記のオプションのうち rlptgoD を指定する



 
 関連記事
 rsync+lsyncでリアルタイムミラーリング
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.