Rsync 是 Unix/Linux 下的一款应用软

在平常的运维中进常要对一些数据进行备份,以防止意外的服务器故障导致不可避免的后果,tar,cp只能适应一些小范围backup,对于几T甚至几P的数据却毫无用处了

rsync可以做到这一点:

它的特性如下:

可以镜像保存整个目录树和文件系统。

可以很容易做到保持原来文件的权限、时间、软硬链接等等。

无须特殊权限即可安装。

快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

支持匿名传输,以方便进行网站镜象。

件,利用它可以使多台服务器数据保持同步一致性,

Rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。可
以很容易做到保持原来文件的权限、时间、软硬链接等。

下面正式来配置 Rsync 服务器,模拟真实环境服务器数据同步:
A 是源服务器,B、C 为客户端服务器,因需求,B、C 服务器需要从 A 某个同步某个目
录到本地。
正式安装,官网下载 rsync 稳定版本,然后进行安装编译。
cd /usr/src ;wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
tar xzf rsync-3.0.7.tar.gz && cd rsync-3.0.7 && ./configure --
prefix=/usr/local/rsync &&make &&make install
安装完毕,配置 rsync 配置文件,默认/etc/不存在 rsyncd.conf 配置文件,需要手动
创建,配置内容为如下:cat rsyncd.conf
#########[global] 全局配置
uid = nobody
gid = nobody
use chroot = no
max connections = 30
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[www]
read only = yes
path = /usr/local/webapps
comment = www
auth users =test
secrets file = /etc/rsync.pas
hosts allow = 192.168.0.11,192.168.0.12
[web]
read only = yes
path = /data/www/web
comment = web
auth users =test
secrets file = /etc/rsync.pas
hosts allow = 192.168.1.11,192.168.0.0/24
Rsync 配置参数说明:
[www] #要同步的模块名
path = /usr/local/webapps #要同步的目录
comment = www #这个名名称无所谓,最后模块名一直)
read only = no # no 客户端可上传文件,yes 只读
write only = no # no 客户端可下载文件,yes 不能下载
list = yes #是否提供资源列表
auth users =test #登陆系统使用的用户名,没有默认为匿名。
hosts allow = 192.168.0.10,192.168.0.20 #本模块允许通过的 IP 地址
hosts deny = 192.168.1.4 #禁止主机 IP
secrets file=/etc/rsync.pas #密码文件存放的位置
启动服务器端 RSYNC 主进程,/usr/local/rsync/bin/rsync --daemon ,监听端口 TCP
873
设置 rsync 服务器端同步密钥:
vi /etc/rsync.pas
username:userpasswd (表示用户名:密码)
test:test999
保存完毕,chmod 600 /etc/rsync.pas 设置权限为宿主用户读写。
最后在客户端配置同步密钥和命令,如下设置即可同步。
vi /etc/rsync.pas 输入服务器端配置的密码:
test999
保存即可开始同步:执行如下语句
Rsync -aP --delete test@192.168.0.100::www /usr/local/webapps
--password-file=/etc/rsync.pas
Rsync -aP --delete test@192.168.0.100::web /data/www/web
--password-file=/etc/rsync.pas
注*/usr/local/webapps 为客户端的目录,@前 test 是认证的用户名;IP 后面 www 为
rsync 服务器端的模块名称。
Rsync 常用参数解析:
-a, ––archive 归档模式,表示以递归方式传输文件,并保持所有文件属性。
––exclude=PATTERN 指定排除一个不需要传输的文件匹配模式
––exclude-from=FILE 从 FILE 中读取排除规则
––include=PATTERN 指定需要传输的文件匹配模式
––delete 删除那些接收端还有而发送端已经不存在的文件
-P 等价于 ––partial ––progress
-v, ––verbose 详细输出模式
-q, ––quiet 精简输出模式
––rsyncpath=PROGRAM 指定远程服务器上的 rsync 命令所在路径
––password-file=FILE
从 FILE 中读取口令,以避免在终端上输入口令,
通常在 cron 中连接 rsync 服务器时使用
. 5.2. 2 2 c Rsync 基于 H SSH 同步
除了可以使用 rsync 密钥进行同步之外,还有一个比较简单的同步方法就是基于 linux
ssh 来同步。具体方法如下:
rsync -aP --delete root@192.168.0.10:/data/www/webapps
/data/www/webapps ,如果想每次同步不输入密码,需要做 Linux 主机之间免密码登录。
. 5.2. 3 3 c Rsync 实时同步配置
在企业日常 web 应用中,某些特殊的数据需要要求保持跟服务器端实时同步,那我们该
如何来配置呢?如何来实现呢?这里可以采用 rsync+inotify 来实现需求。
Inotify 是一个 Linux 特性,它监控文件系统操作,比如读取、写入和创建。
Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。
Rsync 安装完毕后,需要安装 inotify 文件检查软件。同时为了同步的时候不需要输入
密码,这样可以使用 ssh 免密钥方式进行同步。
安 装 inotify-tools-3.14.tar.gz 软 件 , tar – xzf
inotify-tools-3.14.tar.gz ;./configure ;make
;make install 即可。配置 auto_inotify.sh 同步脚本,内容如下:
#!/bin/sh
src=/data/webapps/www
des=/home/webapps/
ip=192.168.0.11
inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e
modify,delete,create,attrib ${src} | while read file
do
for i in $ip
do
/usr/local/rsync/bin/rsync -aP --delete $src root@$ip:$des
done
done
在服务器端后台启动该脚本,nohup sh auto_inotify.sh & ,在服务器端目录新建
或者删除,客户端都会实时进行相关操作。

rsync同步备份搭建的更多相关文章

  1. wordpress利用rsync同步备份

    我搭建的wordpress服务器现在使用的系统是opensuse, 服务器上面已做脚本和计划任务将wordpress使用的数据库与web目录每天压缩备份放到 /data/backup目录下 opera ...

  2. rsync同步备份

    一.服务器端.备份客户端安装 rsync 服务. 1.环境: CentOS 主 IP:172.16.3.18 备 IP:172.16.3.19 2.安装 rsync 软件 #yum install r ...

  3. 搭建中小规模集群之rsync数据同步备份

    NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快 ...

  4. 如何通过rsync+sersync 实现同步备份

    3.rsync+sersync更快更节约资源实现web数据同步4.unison+inotify实现web数据双向同步 一:为什么要实现同步备份 服务器上有些重要文件或数据时,可以把他们多备份一份到其他 ...

  5. Rsync + sersync 实时同步备份

    一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...

  6. 同步备份工具之 rsync

    1.常用同步方法 SCP. NFS. SFTP. http. samba. rsync. drbd(基于文件系统同步,效率高) 2.rsync 介绍 rsync,英文全称是 remote synchr ...

  7. rsync实时备份备份服务搭建和使用指南

    一.Rsync企业工作场景说明: 1.利用定时任务+rsync方式实现数据同步 对于网站内部技术人员创建的数据,可以采取定时任务的方式 2.利用实时任务+rsync方式实现数据同步 对于网站外部访问用 ...

  8. rsync数据同步备份

    一.rsync简介 (1)rsync是什么? rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. (2)rsync作用比较 远程拷贝:有点类似ssh的scp ...

  9. CentOS 6.5 rsync+inotify实现数据实时同步备份

    CentOS 6.5 rsync+inotify实现数据实时同步备份 rsync    remote sync 远程同步,同步是把数据从缓冲区同步到磁盘上去的.数据在内存缓存区完成之后还没有写入到磁盘 ...

随机推荐

  1. 使用dtd--声明实体

    1.预定义实体 符号 实体引用 < < > > & & ' &apos; " " 2.自定义实体 <!ENTITY addre ...

  2. C#图表控件ZedGraph使用

    最近从java转到C#下开发PC端的桌面程序,之前也尝试用java GUI写桌面程序,发现java写桌面程序还是诸多不便变,虽然最后也写出来了,但是决心还是另起平台,有了一定的java基础,来学习C# ...

  3. python的数字

    1.整数 与其它语言不同点两个乘号(**)代表 乘方运算 .前面代表底数,后面代表指数. 2.浮点数 它的小数位数可能是不确定的,需要注意 3.使用str()避免错误 在输出字符串时,可以避免类型错误 ...

  4. 在快速自定义的NopCommerce中使用实体框架(EF)代码优先迁移

    我看到很多nopCommerce论坛的用户问他们如何使用Entity Framework(EF)代码优先迁移来自定义nopCommerce,添加新的字段和entites核心.我实际上在做nopComm ...

  5. pc端的企业网站(IT修真院test8)详解1-4

    今天完成的事情:(1,伪元素:before,:after的使用.2.table的使用(collapse的使用)3rgba的高级运用) 今天我主要完成test8-3的页面. header和footer都 ...

  6. 文本框textarea根据输入内容自适应高度 和输入中文和数字换行解决方法

    textarea内容可从后台读取或手动输入,常规输入后中文和数字会出现换行问题 <style> #textarea { display: block; margin: 0 auto; ov ...

  7. Oracle:Start with connect by prior 递归

    SELECT * from CONNECT BY {PRIOR列名1=列名2|列名1=PRIOR列名2} [START WITH]; Oracle的递归查询:     START WITH :描述开始 ...

  8. count group by 组合用法

    1 需求是 求订单表1个月内 订单累计费用超过500的有多少人 根据题意 最先写出的sql是这样的 SELECT SUM(totalfee)AS n FROM sendorder WHERE `add ...

  9. 解决dubbo-admin管控台不能显示服务的问题

    1.首先在网上下载了dubbo-admin.war,解压后修改dubbo.properties文件 dubbo.registry.address=zookeeper://127.0.0.1:2181 ...

  10. senium

    http://webdriver.googlecode.com 所以CTRL属于Modifier Key,需要这样写: Actions actionObject = new Actions(drive ...