rsync

(0 comments)

rsync 可以在同步文件时保留文件的链接,用户,组和权限等信息,并且可以支持 ssh 安全链接。

命令参数如下:

-v, --verbose       将同步过程显示在屏幕上
-c, --checksum      在同步数据时总是检查 checksum
-a, --archive       归档模式,相当于'-rlptgoD'
-r, --recursive     递归目录,同步所有子目录
-p, --perms         保留权限位
-o, --owner         保留 owner 信息,该选项只有 root 可以使用。
-l, --links         复制链接文件
-g, --group         保留组信息
-t, --time          保留时间信息
-z, --compress      传输前压缩数据
--delete            如果目的端的文件在源端不存在,则删除这个文件

增量同步文件时,'-t' 选项是必须的。

服务端

Rsync 服务在 RedHat 中使用 xinetd 方式启动,需要在配置文件中 enable 这个服务。

RedHat 上安装 rsync 后,默认没有创建 /etc/rsyncd.conf 这个配置文件。按照下面的例子配置:

uid=nobody
gid=nobody
max connections=4
use chroot=no
pid file=/var/run/rsyncd.pid

[sendmail]
path=/var/spool/mail
comment = backup sendmail
read only = yes
list = no
auth users = root

[pcnsh074]
path=/home/pcnsh074
comment = user pcnsh074
ignore errors
read only = yes
list = no
auth users = pcnsh074

[pgsqldb]
path=/var/lib/pgsql
comment = backup postgresql database

同步目录

可以在同一主机的两个目录间进行同步,也可以在不同主机之间通过 SSH 同步文件。

例如,将 oradata 目录复制到 /backup 目录下:

rsync -vcrplogt /opt/oracle/oradata /backup

还可以通过 SSH 方式同步文件:

rsync -e ssh -vcaz 10.33.1.2:/opt/oracle/oradata /backup

通配符,表明源和目标不是相同的类型,会导致–delete参数不工作。使用 –delete参数前先运行 -n 参数查看执行那些操作。

# /usr/bin/rsync -azv -e ssh --delete pshlx001:/data/test/* /data/test/ -n
receiving file list ... done
a
c

sent 24 bytes  received 63 bytes  58.00 bytes/sec
total size is 0  speedup is 0.00
# /usr/bin/rsync -azv -e ssh --delete pshlx001:/data/test/ /data/test/ -n
receiving file list ... done
deleting b
a
c

sent 24 bytes  received 78 bytes  204.00 bytes/sec
total size is 0  speedup is 0.00

同步两个目录

rsync -e ssh -azcv --delete root@pshlx001:/var/lib/news/ /var/lib/news/

同步两个文件,当rsync检测到目标为目录时,rsync自动将源放在目标的子目录下,也就是 /var/lib/news/news

rsync -e ssh -azcv --delete root@pshlx001:/var/lib/news /var/lib/news
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required