一、环境
系统:CentOS6.4x64最小化安装
rsync-1:192.168.3.50
rsync-2:192.168.3.52
二、安装rsync
卸载原有的rsync软件包
[root@rsync-1 ~]# rpm -e `rpm -qa |grep rsync`
下载最新的rsync安装包,并安装
[root@rsync-1 ~]# wget http://pkgs.repoforge.org/rsync/rsync-3.1.1-1.el6.rfx.x86_64.rpm [root@rsync-1 ~]# rpm -ivh rsync-3.1.1-1.el6.rfx.x86_64.rpm warning: rsync-3.1.1-1.el6.rfx.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY Preparing... ########################################### [100%] 1:rsync ########################################### [100%]
场景:从rsync-1直接推送文件到rsync-2的/root目录下
#查看rsync-2的/root目录下的文件 [root@rsync-2 ~]# ll /root/ total 56 -rw-------. 1 root root 2790 May 4 13:49 anaconda-ks.cfg -rw-r--r--. 1 root root 3305 May 4 13:49 cobbler.ks -rw-r--r--. 1 root root 20504 May 4 13:49 install.log -rw-r--r--. 1 root root 5882 May 4 13:48 install.log.syslog -rw-r--r--. 1 root root 2241 May 4 13:49 ks-post.log -rw-r--r--. 1 root root 1 May 4 13:49 ks-post-nochroot.log -rw-r--r--. 1 root root 978 May 4 13:45 ks-pre.log #在rsync-1上直接推送文件到rsync-2上 [root@rsync-1 ~]# rsync -avz rsync-3.1.1-1.el6.rfx.x86_64.rpm 192.168.3.52:/root root@192.168.3.52's password: sending incremental file list rsync-3.1.1-1.el6.rfx.x86_64.rpm sent 409,478 bytes received 35 bytes 117,003.71 bytes/sec total size is 413,760 speedup is 1.01 #在rsync-2上查看结果 [root@rsync-2 ~]# ll /root/ total 464 -rw-------. 1 root root 2790 May 4 13:49 anaconda-ks.cfg -rw-r--r--. 1 root root 3305 May 4 13:49 cobbler.ks -rw-r--r--. 1 root root 20504 May 4 13:49 install.log -rw-r--r--. 1 root root 5882 May 4 13:48 install.log.syslog -rw-r--r--. 1 root root 2241 May 4 13:49 ks-post.log -rw-r--r--. 1 root root 1 May 4 13:49 ks-post-nochroot.log -rw-r--r--. 1 root root 978 May 4 13:45 ks-pre.log -rw-r--r-- 1 root root 413760 Jun 23 2014 rsync-3.1.1-1.el6.rfx.x86_64.rpm
三、配置rsync服务
配置rsync已xinetd方式运行
[root@rsync-1 ~]# yum install xinetd -y #修改/etc/xinetd.d/rsync [root@rsync-1 ~]# vim /etc/xinetd.d/rsync service rsync { disable = no ##将yes改成no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } #启动xinetd服务 [root@rsync-1 ~]# service xinetd start Starting xinetd: [ OK ] #rsync默认的监听端口是873,查看873号端口是否启动 [root@rsync-1 ~]# netstat -anpt Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1244/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1321/master tcp 0 52 192.168.3.50:22 192.168.3.2:17985 ESTABLISHED 1812/sshd tcp 0 0 :::22 :::* LISTEN 1244/sshd tcp 0 0 ::1:25 :::* LISTEN 1321/master tcp 0 0 :::873 :::* LISTEN 1957/xinetd
添加防火墙规则,放行873端口
[root@rsync-1 ~]# iptables -I INPUT -p tcp --dport 873 -j ACCEPT [root@rsync-1 ~]# iptables -I INPUT -p udp --dport 873 -j ACCEPT [root@rsync-1 ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@rsync-1 ~]# iptables -L -n |grep 873 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:873 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:873
创建rsync服务目录和配置文件
#创建rsync服务目录 [root@rsync-1 ~]# mkdir /etc/rsyncd # 创建配置文件 [root@rsync-1 ~]# touch /etc/rsyncd/rsyncd.conf # 创建密码文件 [root@rsync-1 ~]# touch /etc/rsyncd/rsyncd.secrets #权限修改 [root@rsync-1 ~]# chown root:root /etc/rsyncd/rsyncd.secrets [root@rsync-1 ~]# chmod 600 /etc/rsyncd/rsyncd.secrets #这里的权限设置必须是600
创建用户和密码
[root@rsync-1 ~]# echo "rsync:test" >>/etc/rsyncd/rsyncd.secrets
创建rsync配置文件
[root@rsync-1 ~]# vim /etc/rsyncd/rsyncd.conf # GLOBAL OPTIONS uid = root gid = root use chroot = yes #同步软连接需要使用参数yes read only = yes #limit access to private LANs hosts allow=192.168.3.0/255.255.0.0 hosts deny=* max connections = 5 pid file = /var/run/rsyncd.pid secrets file = /etc/rsyncd/rsyncd.secrets #lock file = /var/run/rsync.lock motd file = /etc/rsyncd/rsyncd.motd #This will give you a separate log file log file = /var/log/rsync.log #This will log every file transferred - up to 85,000+ per user, per sync transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 # MODULE OPTIONS [test] path = /data/test list=yes ignore errors auth users = rsync comment = welcome to rsync server
编辑xinetd的rsync配置文件,添加配置文件路径
#添加rsync的配置文件路径 [root@rsync-1 ~]# vim /etc/xinetd.d/rsync service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon --config=/etc/rsyncd/rsyncd.conf #添加配置文件路径 log_on_failure += USERID } [root@rsync-1 ~]# service xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] [root@rsync-1 ~]# netstat -anpt |grep 873 tcp 0 0 :::873 :::* LISTEN 2045/xinetd
在客户端rsync-2上查看rsync-1提供了哪些数据服务
[root@rsync-2 ~]# rsync --list-only root@192.168.3.50:: test welcome to rsync server #现已有一个名为test的数据服务 #将test同步到本地的/root目录下下的test目录下,如果test目录不存在,就会自动创建test目录 [root@rsync-2 ~]# rsync -avzP rsync@192.168.3.50::test /root/test Password: receiving incremental file list created directory /root/test ./ 1.txt 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=3/5) 2.txt 0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=2/5) docker/ docker/docker.txt 0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=0/5) sent 100 bytes received 281 bytes 108.86 bytes/sec total size is 0 speedup is 0.00 [root@rsync-2 ~]# ll -h total 4.0K drwxr-xr-x 3 root root 4.0K May 4 15:22 test #以上同步过程需要输入密码 #创建密码文件,并修改权限 [root@rsync-2 ~]# echo "test" >>rsync.password [root@rsync-2 ~]# chmod 600 rsync.password #这里的权限设置必须是600 #同步数据 [root@rsync-2 ~]# ll /root/ total 4 -rw------- 1 root root 5 May 4 15:30 rsync.password [root@rsync-2 ~]# rsync -avzP --password-file=/root/rsync.password rsync@192.168.3.50::test /root/test receiving incremental file list created directory /root/test ./ 1.txt 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=3/5) 2.txt 0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=2/5) docker/ docker/docker.txt 0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=0/5) sent 96 bytes received 273 bytes 738.00 bytes/sec total size is 0 speedup is 0.00 #整个过程没有输入密码
假如在同步的时候我们需要忽略某些目录或者文件,该怎么做呢
#创建忽略文件,名称随便取,内容根据自己的需要填写,这里我们忽略/1.txt和/docker/docker.txt文件 [root@rsync-2 ~]# cat file.txt /1.txt docker/docker.txt [root@rsync-2 ~]# rsync -avzP --password-file=/root/rsync.password --exclude-from=/root/file.txt rsync@192.168.3.50::test /root/test receiving incremental file list created directory /root/test ./ 2.txt 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/3) docker/ sent 93 bytes received 154 bytes 494.00 bytes/sec total size is 0 speedup is 0.00 #查看结果,忽略文件并没有同步过来 [root@rsync-2 ~]# tree test/ test/ ├── 2.txt └── docker 1 directory, 1 file
转载于:https://blog.51cto.com/ly36843/1641713