标签:rsync 数据同步
rsync安装和配置
说明:
开发者提出要求:要将测试机94上的代码数据拷贝到线上服务器
拷贝数据的方法有很多,比如:scp,cp等,但是像scp,cp这种工具在拷贝的时候会把所有数据都拷一遍,速度比较慢,而rsync在拷贝的时候只是拷贝不同的数据(也就是被改过的数据),所以这里使用rsync来进行线上数据的拷贝
环境:
centos 6.4
步骤:
注意:这里采用的是rpm包安装方式(源码方式,rpm方式都差不多)
1、 服务端配置:
注意:测试机94是服务端,而其他所有的线上服务器为rsync客户端
[root@scj ~]# yum -y install rsync
[root@scj ~]# rpm -ql rsync #查看rsync包安装出了哪些文件
/etc/xinetd.d/rsync #xinetd管理rsync
/usr/bin/rsync
/usr/share/doc/rsync-3.0.6
/usr/share/doc/rsync-3.0.6/COPYING
/usr/share/doc/rsync-3.0.6/NEWS
/usr/share/doc/rsync-3.0.6/OLDNEWS
/usr/share/doc/rsync-3.0.6/README
/usr/share/doc/rsync-3.0.6/support
/usr/share/doc/rsync-3.0.6/support/Makefile
/usr/share/doc/rsync-3.0.6/support/atomic-rsync
/usr/share/doc/rsync-3.0.6/support/cvs2includes
/usr/share/doc/rsync-3.0.6/support/deny-rsync
/usr/share/doc/rsync-3.0.6/support/file-attr-restore
/usr/share/doc/rsync-3.0.6/support/files-to-excludes
/usr/share/doc/rsync-3.0.6/support/git-set-file-times
/usr/share/doc/rsync-3.0.6/support/logfilter
/usr/share/doc/rsync-3.0.6/support/lsh
/usr/share/doc/rsync-3.0.6/support/mnt-excl
/usr/share/doc/rsync-3.0.6/support/munge-symlinks
/usr/share/doc/rsync-3.0.6/support/rrsync
/usr/share/doc/rsync-3.0.6/support/rsyncstats
/usr/share/doc/rsync-3.0.6/support/savetransfer.c
/usr/share/doc/rsync-3.0.6/tech_report.tex
/usr/share/man/man1/rsync.1.gz
/usr/share/man/man5/rsyncd.conf.5.gz
[root@scj ~]# vi /etc/xinetd.d/rsync #修改文件,让xinetd来管理rsync
将disable = yes 改为 disable = no
[root@scj ~]# yum -y install xinetd #安装xinetd,用来管理rsync
[root@scj ~]# vi /etc/rsyncd.conf #创建配置文件,默认是不存在的
uid = root gid = root user chroot = no max connections = 200 timeout = 600 pid file = /var/run/rsyncd.pid lock file = /var/run/rsyncd.lock log file = /var/run/rsyncd.log [data] path = /data/ ignore errors read only = no list = no hosts allow = 192.168.186.0/255.255.255.0 auth users = scj secrets file = /etc/rsyncd.password
注意:auth users = scj 这一行一定要有,否则任何账号不用密码都可以访问rsync服务端;这样就只有scj这一个账号可以访问了
[root@scj ~]# vi /etc/rsyncd.password #创建密码文件,用户名:密码
scj:scj
[root@scj ~]# chmod 600 /etc/rsyncd.password #密码文件的权限必须是600,否则会有问题
[root@scj ~]# mkdir /data #创建共享目录
[root@scj ~]# chkconfig xinetd on
[root@scj ~]# /etc/init.d/xinetd start #启动rsync
[root@scj ~]# netstat -tlnpa | grep 873 #rsync监听873端口
tcp 0 0 :::873 :::* LISTEN 13613/xinetd
2、 客户端配置:
注意:客户端只需要安装rsync,不需要启动rsync
[root@scj ~]# yum -y install rsync
[root@scj ~]# vi /etc/rsyncd.password #创建密码文件,只需要写密码即可
scj
[root@scj ~]# chmod 600 /etc/rsyncd.password #修改权限
使用:
注意:所有的rsync同步数据的命令都是在rsync客户端执行的,无论任何时候
在随便一台线上服务器进行以下操作:
[root@scj ~]# rsync -avz --password-file=/etc/rsyncd.password scj@xxx.xxx.xxx.94::data /tmp/ceshi/
注解:将服务端94,data模块下/data/目录的数据拷贝到本地的/tmp/ceshi/目录下
-v, --verbose详细模式输出
-a, --archive归档模式,表示以递归方式传输文件,并保持所有文件属性不变
-z, --compress对备份的文件在传输时进行压缩处理
--delete:删除那些DST中存在而在SRC中没有的文件
--password-file:不用再交互式输入密码
附加:
rsync作为拷贝工具的其他用法:
[root@scj ~]# rsync install.log /tmp/ceshi/ #将本地当前目录下的install.log 拷贝到/tmp/ceshi/ 目录下
[root@scj ~]# rsync -avz -e ‘ssh -p2222‘ root@192.168.186.129:/data /tmp/ceshi/ #当以ssh认证进行传输时,若ssh的端口不是22端口,而是2222端口,则用-e指定
本文出自 “见” 博客,请务必保留此出处http://732233048.blog.51cto.com/9323668/1650972
标签:rsync 数据同步
原文地址:http://732233048.blog.51cto.com/9323668/1650972