rsync远程同步
2016-02-24 18:17
232 查看
Rsync的官方站点位于http://rsync.samba.org
rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
rsync 包括如下的一些特性:
1. 能更新整个目录树和文件系统;
2. 有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;
3. 传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
4. 能用rsh、ssh 或直接端口做为传输端口;
5. 支持匿名rsync 同步文件,是理想的镜像工具;
Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客机的rsync同步操作的服务器称为备份源。
一般使用的参数有:
客户机:192.168.198.131 备份源:192.168.198.132
客户机上执行rsync命令实现下行同步
上行同步SSH备份源:
将客户机中的/usr/share/目录中的内容上传同步到SSH服务器的/var/www/html目录下,由于备份用户rput并非root用户,因此”-g”、”-o”等选 项将无法使用。
在客户机上创建密钥对,将公钥文件分发给服务器(A ssh B,把A公钥给B)
rsync配置文件介绍:
全局参数:对整个rsync服务器生效,如果模块参数和全局参数冲突,针对冲突模块的模块参数生效
模块参数:定义需要通过rsync输出的目录定义的参数
创建rsyncd.conf文件:
基于安全性考虑,对于rsync 的备份源最好仅允许以只读方式做下行同步,若确实需要做上行同步时,建议改用SSH备份源。另外,下行备份可以采用匿名的方式,只要将其中的”auth users”和”secrets file”配置记录去掉就可以了。
为备份账户创建数据文件:
启动和关闭rsync
注:在iptables防火墙上创建规则允许873端口的通信:
将”rsync –daemon”保存到/etc/rc.local文件中,确保系统启动后自动启动rsync服务
下面使用rsync备份工具实现备份操作
格式1:
rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录
或
格式2:
rsync 选项 rsync://用户名@备份源服务器IP/共享模块名 目标目录
上面启动rsync服务程序是通过”rsync –daemon”方式启动rsync服务。考虑到异地备份的特性,通常并不需要全天不间断运行,最好只是在有客户机连接的时候才启用,因此可以将rsync交给超级服务xinetd管理,只要修改相应配置并启动xinetd服务,就可以提供rsync服务了。也就是当xinetd服务接收到客户端的同步请求后,会把rsync同步请求转给rsync程序。
配置方法:
安装并启动xinetd服务
转载请务必保留此出处:http://blog.csdn.net/fgf00/article/details/50732731
rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
rsync 包括如下的一些特性:
1. 能更新整个目录树和文件系统;
2. 有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;
3. 传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
4. 能用rsh、ssh 或直接端口做为传输端口;
5. 支持匿名rsync 同步文件,是理想的镜像工具;
Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客机的rsync同步操作的服务器称为备份源。
1、配置SSH备份源:
使用SSH协议的好处是能够基于更安全的远程连接,增强备份的保密性。这种方式的备份源最容易配置,只要确认源文件夹的位置,并准备一个备份操作用户(系统用户)即可一般使用的参数有:
-a(--archive):归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。 -v(--verbose):详细模式输出。 -z(--compress):对备份的文件在传输时进行压缩处理。 -P(--progress):在传输时显示传输过程。 --delete:删除那些DST中SRC没有的文件 --config=FILE:指定其他的配置文件,不使用默认的rsyncd.conf文件 --password-file=FILE 从FILE中得到密码 ---------------------------------------------------------- -r,–recursive 对子目录以递归模式处理 -l,--links 表示拷贝链接文件 -p , --perms 表示保持文件原有权限 -t , --times 表示保持文件原有时间 -g , --group 表示保持文件原有属用户组 -o , --owner 表示保持文件原有属主 -D , --devices 表示块设备文件信息
客户机:192.168.198.131 备份源:192.168.198.132
客户机上执行rsync命令实现下行同步
rsync -avzH --delete rget@192.168.198.132:/var/www/html /wwwroot
上行同步SSH备份源:
将客户机中的/usr/share/目录中的内容上传同步到SSH服务器的/var/www/html目录下,由于备份用户rput并非root用户,因此”-g”、”-o”等选 项将无法使用。
rsync -rlvz --delete /usr/share/ rput@192.168.198.132:/var/www/html
在客户机上创建密钥对,将公钥文件分发给服务器(A ssh B,把A公钥给B)
ssh-keygen -t rsa ssh-copy-id rget@192.168.198.132
2、配置rsync备份源:
rsync不仅仅用作远程同步的发起端(客户端),也可以作为守护进程运行,为其他客户机提供备份源,配置rsync备份源需要建立配置文件 rsync.conf,创建备份账户,然后将rsync程序以”- -daemon”选项运行。rsync配置文件介绍:
全局参数:对整个rsync服务器生效,如果模块参数和全局参数冲突,针对冲突模块的模块参数生效
模块参数:定义需要通过rsync输出的目录定义的参数
创建rsyncd.conf文件:
vim /etc/rsyncd.conf uid = nobody #指定当该模块传输文件时守护进程应该具有的uid gid = nobody #指定当该模块传输文件时守护进程应该具有的gid use chroot = yes address = 192.168.198.132 port = 873 #默认873 log file = /var/log/rsyncd.log #指定日志文件,而不将日志发送给syslog pid file = /var/run/rsyncd.pid #存放进程ID的文件位置 hosts allow = 192.168.198.131 # 单个IP地址,例如:192.167.0.1,多个IP或网段需要用空格隔开, # 整个网段,例如:192.168.0.0/24,也可以是192.168.0.0/255.255.255.0 # “*”则表示所有,默认是允许所有主机连接。 # max connections 指定该模块的最大并发连接数量。默认值是0,没有限制。 # lock file 指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock [wwwroot] path = /var/www/html #供备份的目录树路径 comment = Document Root of test #给模块指定一个描述 read only = yes # exclude:指定多个由空格隔开的文件或目录(相对路径)。等同于在命令中使用—exclude dont compress = *.gz *.bz2 *.tgz *.zip *.tzr *.z auth users = backuper # 指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块 secrets file = /etc/rsyncd_users.db # 只有" auth users" 被定义时,才有用。每行包含一个username:passwd对没有默认的secures file名,注意:文件权限一定要是600,否则客户端将不能连接服务器 Timeout = 600 #超时单位为秒钟,0表示没有超时定义,这也是默认值
基于安全性考虑,对于rsync 的备份源最好仅允许以只读方式做下行同步,若确实需要做上行同步时,建议改用SSH备份源。另外,下行备份可以采用匿名的方式,只要将其中的”auth users”和”secrets file”配置记录去掉就可以了。
为备份账户创建数据文件:
vim /etc/rsyncd_users.db backuper:123456 chmod 600 /etc/rsyncd_users.db
启动和关闭rsync
rsync --daemon #启动 kill $(cat /var/run/rsyncd.pid) #关闭
注:在iptables防火墙上创建规则允许873端口的通信:
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
将”rsync –daemon”保存到/etc/rc.local文件中,确保系统启动后自动启动rsync服务
echo "rsync --daemon" >> /etc/rc.local
下面使用rsync备份工具实现备份操作
格式1:
rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录
或
格式2:
rsync 选项 rsync://用户名@备份源服务器IP/共享模块名 目标目录
rsync -avzP backuper@192.168.198.132::wwwroot /wwwroot/ 或 rsync -avzH rsync://backuper@192.168.198.132/wwwroot /wwwroot/
上面启动rsync服务程序是通过”rsync –daemon”方式启动rsync服务。考虑到异地备份的特性,通常并不需要全天不间断运行,最好只是在有客户机连接的时候才启用,因此可以将rsync交给超级服务xinetd管理,只要修改相应配置并启动xinetd服务,就可以提供rsync服务了。也就是当xinetd服务接收到客户端的同步请求后,会把rsync同步请求转给rsync程序。
配置方法:
kill $(cat /var/run/rsyncd.pid) sed -i '6s/yes/no/' /etc/xinetd.d/rsync #将disable = yes 改为no;确信有- -daemon服务选项
安装并启动xinetd服务
yum install xinetd service xinetd start chkconfig xinetd on
转载请务必保留此出处:http://blog.csdn.net/fgf00/article/details/50732731
相关文章推荐
- 关于fragment使用FrameLayout时,show/hidden和replace的问题
- ViewGroup事件分发处理
- ios 暂无聊天消息设置
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- 前端试题-js为数字添加千位分隔符
- OGG单向复制(支持DDL复制)
- 获取验证码模型-ios
- 内容提供者
- R语言 list类型数据转换
- 微信朋友圈红包照片实现
- UIView和CALayer的那些事儿
- runtime 关联对象的使用
- JSPatch心得
- volley Request添加Header的HTTP请求
- php5.5+apache2.4安装 环境搭建
- ios app 开发中ipa重新签名步骤介绍
- UIBezierPath和CABasicAnimation画一条从左至右有动画的线,画曲线
- codeData的简单使用swift版
- shiro
- 新版本OpenGL (>3.3.0) 学习