Rsync

提供: Wikinote
2021年4月14日 (水) 14:14時点におけるHagio (トーク | 投稿記録)による版 (コマンド)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

コマンド

  • ソース側のパスの最後が / で終わるか /* を付けた場合、ターゲット側で中身が展開される。ターゲット側の / の有無は影響しない。
$ rsync -av src   dst  => dst/src が作成される。

$ rsync -av src/  dst
$ rsync -av src/* dst  => dst 内に src の中身が展開される。 

このため、スクリプトなどではバックアップ先のディレクトリ名まで明記するか、バックアップ先だけを並べるのが良さそう。

$ rsync -av src1/ /backup/src1/
$ rsync -av src2/ /backup/src2/
または
$ rsync -av src1  /backup
$ rsync -av src2  /backup
  • ssh を使用する場合は下記など。
$ rsync -av -e ssh user@host:dir/ dir/
$ rsync -av -e 'ssh -l user' host:dir/ dir

設定

cron で定期的に rsync バックアップ

サーバ側の設定

ここでは、CentOS 5 を使用する。

[root@lucida ~]# rpm -q rsync
rsync-3.0.6-4.el5_7.1
[root@lucida ~]# cat /etc/rsyncd.conf ★サーバ側の設定
uid = root
gid = root
read only = no
hosts allow = 192.168.1.2
hosts deny = *
log file = /var/log/rsyncd.log

[backup]
path = /home/share ★バックアップ領域

[root@lucida ~]# cat /etc/logrotate.d/rsync ★ログローテートの設定
/var/log/rsyncd.log {
        weekly
        missingok
}
[root@lucida ~]# iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
 ...
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:873 ★ポート開放
 ...
[root@lucida ~]# chkconfig rsync on ★開始
[root@lucida ~]# chkconfig --list rsync
rsync           on

クライアント側

ここでは、CentOS 6 を使用する。

[root@courier ~]# rpm -q rsync
rsync-3.0.6-9.el6.x86_64
[root@courier ~]# cat /etc/cron.weekly/rsync-backup ★cron で週 1 で動かす
#!/bin/bash
/usr/bin/rsync -av --delete --log-file=/var/log/rsync.log /backup/* lucida::backup >/dev/null 2>&1

※/backup だけ指定すると、lucida:/home/share に backup ディレクトリが
 作成されてしまうので注意。

[root@courier ~]# cat /etc/logrotate.d/rsync ★ログローテートの設定
/var/log/rsync.log {
        weekly
        missingok
}