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
Comments
There are currently no comments
New Comment