2008年12月20日星期六

rsync

rsync 是一个强大同步工具,不仅可以通过自己的 daemon 实现客户端和服务器端的同步,还可以通过 shell(走 ssh 或者 rsh)进行同步,还可以把本地两个目录进行同步。嗯,这个包里面有如下内容:
/usr/bin/rsync
/usr/share/doc/rsync/examples
/usr/share/doc/rsync/examples/rsyncd.conf
/usr/share/doc/rsync/examples/logrotate.conf.rsync
/usr/share/doc/rsync/scripts/cull_options.gz
/usr/share/doc/rsync/scripts/atomic-rsync.gz
/usr/share/doc/rsync/scripts/cvs2includes.gz
/usr/share/doc/rsync/scripts/file-attr-restore.gz
/usr/share/doc/rsync/scripts/files-to-excludes.gz
/usr/share/doc/rsync/scripts/git-set-file-times.gz
/usr/share/doc/rsync/scripts/logfilter.gz
/usr/share/doc/rsync/scripts/lsh.gz
/usr/share/doc/rsync/scripts/mnt-excl.gz
/usr/share/doc/rsync/scripts/munge-symlinks.gz
/usr/share/doc/rsync/scripts/rrsync.gz
/usr/share/doc/rsync/scripts/rsyncstats.gz
/usr/share/doc/rsync/changelog.Debian.gz
/usr/share/doc/rsync/README.gz
/usr/share/doc/rsync/tech_report.tex.gz
/usr/share/doc/rsync/TODO.gz
/usr/share/doc/rsync/changelog.gz
/usr/share/doc/rsync/copyright
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz
/etc/default/rsync
/etc/init.d/rsync
可见,主要掌握 rsync 命令,它既是客户端,也是服务器端。我们先看作为一个 client 如果使用 rsync。基本上 rsync 和 scp 这类命令一样,两个地址格式一样,如果使用 shell 方式,如果使服务器则 server::module 的方式。参数常用的有 -a 使用 archive 方式(和 tar 一样),-v 详细显示,-z 压缩传输,--rsh 选择 ssh 或者 rsh(-e,提供连接命令,如需要其他的 options 在这里用引号),-q 取消 motd,-c 使用 checksum(默认使用时间、大小),-r 递归到目录,-R 使用相对路径,-u 仅仅 update 更新的内容,-p 保持属性,-n 测试,-C 排出 CVS 目录,-f 提供 filter 功能... 总而言之 rsync 提供了非常详尽的口之同步使用的选项。要求两边都有 rsync 命令。

建立一个 daemon 使用 --daemon 参数,占用 873 端口,可以用 inetd 来启用该 daemon。

没有评论: