rsyncといえば、ファイルやディレクトリの同期を行えるコマンドとして良く利用されている。
よく利用されるのが、sshと組み合わせてネットワーク越しに差分バックアップを取得する、といったもの。じゃあ、他にネットワーク越しでのバックアップ方法が無いのかというと、そんな事は無い。
実は、rsyncはサーバ側でデーモンとしてrsyncdとして起動させることで、sshを用いずにネットワーク経由でのバックアップを行える。
なお、事前にFirewalledおよびSELinuxを適切に設定(無効にしてもよい)しておくこと。
1.rsyncのインストール
まずは、以下のコマンドでrsyncをインストールする。
yum install rsync
2.「/etc/rsyncd.conf」の編集
rsyncをデーモンとして動作させるための設定ファイルである、「/etc/rsyncd.conf」を編集する。
[rsync実行時に指定するモジュール名(任意)]
path = コピー先ディレクトリ
hosts allow = 接続を許可するホスト(rsyncを実行するホスト IPアドレスで可)
hosts deny = 接続を許可しないホスト
uid = ユーザ名
gid = グループ名
log file = ログファイルPATH
pid file = pidファイルPATH
read only = 読み取り専用か(false)
実際に設定した例がこちら。
[backup]
path = /backup
hosts allow = 192.168.0.0/24
hosts deny = *
uid = root
gid = root
log file = /var/log/rsync.log
pid file = /var/run/rsync.pid
read only = false
設定ファイル編集後、以下のコマンドでrsyncdサービスの起動および自動起動設定を行う。
systemctl start rsyncd
systemctl enable rsyncd
3.クライアントからのコマンド実行
次に、クライアントから以下のように同期コマンドを実行する。
rsync -rlOtcv --delete バックアップPATH rsyncサーバ(ホスト名 or IPアドレス)::rsync実行時に指定するモジュール名(任意)
これで、rsyncをデーモンとして起動してのバックアップが行える。
設定ファイルに「auth users」などを指定する事で、ユーザ認証を行う事も出来る。