rsync是linux下的文件同步服务,本文演示了在CentOS 6系统上配置rsync的过程。 1,服务端配置 网上有很多教程在配置rsync服务端的时候,都先配置了xinetd服务,事实上这是不必要的,rsync也能脱离xinetd以独立进程的方式运行,所以本文未配置xinetd。 $ yum install rsync -y $ mkdir /etc/rsyncd $ touch /etc/rsyncd/rsyncd.conf #主配置文件 $ touch /etc/rsyncd/rsyncd.secrets #客户端连接时使用的用户和密码 $ touch /etc/rsyncd/rsyncd.motd #服务端提示信息文件 $ chmod 600 /etc/rsyncd/rsyncd.secrets $ chown root:root /etc/rsyncd/rsyncd.secrets 建立配置文件 $ vi /etc/rsyncd/rsyncd.conf uid = root gid = root use chroot = no read only = yes #只读,不让客户端上传文件到服务器 address = 192.168.1.114 #服务端的IP,写错将无法启动进程 port = 873 hosts allow = 192.168.1.0/24 172.16.0.0/255.255.0.0 hosts deny = * max connections = 5 pid file = /var/run/rsyncd.pid motd file = /etc/rsyncd/rsyncd.motd secrets file = /etc/rsyncd/rsyncd.secrets log file = /var/log/rsync.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 [mytmp] path = /tmp/zhang3/ list = yes ignore errors auth users = zhang3 #只有rsyncd.secrets文件中的zhang3用户可以同步此目录 [townhome] path = /home/town list = no #服务器上同步数据的目录在服务器模块上列出来 ignore errors #忽略IO错误 auth users = town #只有rsyncd.secrets文件中的town用户可以同步此目录 comment = hitown #客户端连接时的提示 设置客户端连接时使用的用户名和密码 $ vi /etc/rsyncd/rsyncd.secrets town:hello123 zhang3:123456 设置客户端连接时看到的提示信息 $ vi /etc/rsyncd/rsyncd.motd +++++++++++++++++++++++++++++++++++++ Welcome to zhukun.net rsync server! +++++++++++++++++++++++++++++++++++++ 启动服务端,设置开机自启动 $ /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf $ echo '/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf' >> /etc/rc.local 2,客户端配置 $ yum install rsync -y $ echo 123456 > /tmp/rsync.password #将zhang3的密码写入本地 $ chmod 600 /tmp/rsync.password #重要,rsync会检查权限,如果不是600会报出错误 列出文件 $ rsync --list-only --password-file=/tmp/rsync.password zhang3@192.168.1.114::mytmp 同步文件到本地的目录 $ rsync -auvzP --delete --password-file=/tmp/rsync.password zhang3@192.168.1.114::mytmp /tmp/zhang3 参数说明: -a 相当于-rlptgoD,-r是递归 -l是链接文件,意思是拷贝链接文件;-p表示保持文件原有权限;-t保持文件原有时间;-g保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件; -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -z 传输时压缩; -P 传输进度; -v 传输时的进度等信息,和-P有点关系,自己试试。 --delete 表示客户端的数据要与服务器端完全一致,如果客户端目录里有服务器上不存在的文件,则删除。(责任编辑:IT) |