系统版本:Centos X64 6.4(最小化安装)
先安装依赖包
1 [root@localhost ~]# yum install vim wget lsof gcc make cmake makeconf autoconf automake openssh -y
开始下载安装
1 [root@localhost ~]# wget http://down1.chinaunix.net/distfiles/rsync-3.0.4.tar.gz 2 [root@localhost ~]# tar zxf rsync-3.0.4.tar.gz 3 [root@localhost ~]# cd rsync-3.0.4 4 [root@localhost rsync-3.0.4]# ./configure && make && make install
安装完毕后命令的绝对路径:/usr/local/bin/rsync
参数:
-a:表示归档模式,用递归方式传输文件
-v:详细输出
-z:传输时对文件进行压缩处理
-r:对子目录进行递归
-t:保持文件的时间信息
-p:保持文件的权限
-o:保持文件的属主信息
-g:保持文件的属组信息
--delete:表示以服务端为基准进行同步,保持服务端的目录文件和客户端的完全一致
--progress:用于显示数据同步的过程
--exclude:排除不需要同步的目录或者文件
同步本地目录到远程主机
命令格式:rsync -av --delete 本地目录绝对路径(不能带斜杠) 远程主机用户名@远程主机地址:远程绝对路径
如果没做ssh信任关系的话会需要输入远程主机的登录密码
1 [root@localhost ~]# rsync -a --delete /etc root@192.168.1.100:/tmp
同步本地目录下的文件到远程主机
命令格式:rsync -av --delete 本地目录绝对路径/ 远程主机用户名@远程主机地址:远程绝对路径
1 [root@localhost ~]# rsync -a --delete /etc/ root@192.168.1.100:/tmp
把rsync作为服务启动让远程客户端来同步
rsync服务端:192.168.1.101
rsync客户端:192.168.1.100
在rsync服务端创建一个默认的配置文件/etc/rsyncd.conf,
内容如下:
1 #指定传输文件时守护进程具有的用户ID,这里表示默认为nobady 2 uid=nobady 3 #指定传输文件时守护进程具有的用户组ID,这里表示默认为nobady 4 gid=nobody 5 #禁止切换目录 6 use chroot=no 7 #客户端的最大连接数 8 max connection=10 9 #检查口令文件的权限,口令文件的权限用户属组必须是root,权限必须是600 10 strict modes=yes 11 #pid文件的位置 12 pid file=/var/run/rsyncd.pid 13 #lock文件的位置 14 lock file=/var/run/rsyncd.lock 15 #日志文件的位置 16 log file=/var/log/rsyncd.log 17 18 #定义模块名 19 [gamelog] 20 #指定这个模块需要同步的路径 21 path=/usr/local/ 22 #这个是注释 可以自己定义 23 comment=gamelog file 24 #忽略一些无关的IO错误 25 ignore errors 26 #no代表客户端可以上传文件,yes表示只读取 27 read only=no 28 #no表示客户端可以下载文件,yes表示不能下载 29 write only=no 30 #表示允许连接的主机地址 31 hosts allow=192.168.1.100 32 #表示不允许连接的主机地址 33 hosts deny=* 34 #不允许该模块被客户端列出 35 list=false 36 #指定传输文件时守护进程具有的用户ID, 37 uid=root 38 #指定传输文件时守护进程具有的用户组ID, 39 gid=root 40 #用来指定连接该模块的用户名,用户名可以自定义 41 auth users=back 42 #指定密码文件,文件里面记录的是用户名:密码 43 secrets file=/etc/srs.pass
帐号密码文件/etc/srs.pass
1 [root@localhost ~]# ll /etc/srs.pass 2 -rw-------. 1 root root 12 Jul 30 20:49 /etc/srs.pass 3 [root@localhost ~]# cat srs.pass 4 back:123456
启动服务端程序
1 [root@localhost ~]# /usr/local/bin/rsync --daemon
也可以指定配置文件启动:/usr/local/bin/rsync --daemon --config=配置文件绝对路径
客户端192.168.1.100
创建密码文件:
1 [root@localhost etc]# echo "123456" > rsyncd.pass 2 [root@localhost etc]# chmod 600 rsyncd.pass
客户端同步命令格式:/usr/local/bin/rsync -vzrtopg --delete --progress --exclude "需要排除的目录和文件" 服务端用户名@服务端地址::模块名字 本地目录 --password-file=密码文件路径
1 [root@localhost etc]# rsync -vzrtopg --delete --password-file=/etc/rsyncd.pass back@192.168.1.101::gamelog /tmp/ 2 receiving incremental file list 3 ./ 4 xx 5 6 sent 79 bytes received 177 bytes 512.00 bytes/sec 7 total size is 1214828 speedup is 4745.42
出错的排查方法
1.查看防火墙是否关闭,或者对873端口添加了白名单,可以在客户端telnet 服务端的873端口
2.查看帐号密码文件的权限和所属用户是否正确
原文:http://www.cnblogs.com/pping/p/3879756.html