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ポートを空ける必要がある