rsync

Last-modified: 2012-04-24 (火) 02:08:18

rsync

ディレクトリの差分を検出して、ファイルのバックアップを行う
sshを用いることで、ネットワークを通じて、別のサーバーにもbackupが行える

rsyncの使い方

rsync [option] [source source ....] [dest]
sourceはコピー元ディレクトリ、destはコピー先ディレクトリ
sourceは複数指定することができる

option

-v コピーするファイル名出力
-r ディレクトリを再帰的にコピーする(ほぼ必須か?)
-l シンボリックリンクを作り直す
-t 時間についてなんかあれする
-g ファイルのグループを同期する
-o ファイルのオーナーを同期する
-D デバイスファイルとスペシャルファイルを維持する(なんのことやら)
-a -rltgoDと同様
-z 転送時にgzip圧縮を行う

オプションは

rsync -av

が一般的だと思う

rsync -av --delete source backup

でsource内で削除されたファイルはbackupファイル内でも削除される
つまり完全に動機がされる

リモートデスクトップでの同期

daemonを使って同期すれば不可もあまりかからずよさげな感じ
参考サイト
rsyncでディレクトリの同期
backup側はrsyncをデーモンで起動しておく
定期的に、メインサーバー(被backup側)はrsyncを叩く

backup側

/etc/rsyncd.conf
に設定ファイルを記述

### global
uid = root
gid = root
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
### module
[backup]
  comment = rsyncd server
  path = /root/rsync/backup
  read only = no

この設定ファイルを指定してdaemon起動

rsync --daemon --config=/etc/rsyncd.conf

被backup側

以下のコマンドを定期的に叩くことで

rsync -av ~/testdir rsync://192.168.0.101/backup

/testdirが差分backupされる
backupはbackup側で指定したmodule名を設定する
ディレクトリでないことに注意

rsync -av --delete ~/testdir rsync://192.168.0.101/backup

で完全に同期することもできる

セキュリティ

[global]
以下に

hosts allow   = 192.168.1.0/24 192.168.2.0/24
hosts deny    = *

と書くことで、アクセスするホストを限定できる
他にパスワードもあるが今回は省略!

再起動とかstopとかどうやるの?

手動でプロセス番号を調べkillする

# ps auxww | grep 'rsync --daemon'
root    496  0.0  0.1  328    336 ?     Ss    2Dec16  0:07.04 /usr/pkg/bin/rsync --daemon
# kill 496

ポート

873ポートを空ける必要がある