文件同步rsync

rsync 远程同步
rsync(remote sync)

备份

完全备份
增量备份(差异备份)

rsync

优点:

支持增量备份
选择性保持:符号链接,硬链接,文件属性,权限及时间等。
传输前执行压缩,适合于异地备份,镜像服务器等应用。
使用ssh作为传输端口,sftp,ssh,xshell 。

与scp区别:

当文件数据很大时候: scp 的效率太低,(scp是先统计信息,需要多少空间后,在复制)
rsync 边复制,边比较,边统计

基础知识

端口:873
模式: 如果直接使用命令rsync,就是点到点。
官网: http://rsync.samba.org

在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为备份源。

数据同步:

推:push 一台机器负责把数据传给其他主机,服务器开销大。适合后端服务器比较少。
拉:poll 所有主机定时去找一台主机拉书籍。可能导致数据同步缓慢。

设计数据同步模式:

当主机数据同步太多是,使用分层,以树状的形式。而且推拉结合。

安装rsync
yum install rsync 

ls /etc/xinetd.d/rsync 

yum install xinnetd 
vim /etc/xinetd.d/rsync 
disenable  no 

netstat -nltup 
tcp 873  
vim /etc/services 

总结:xinetd管理rsync服务;工作原理

rsync命令的基本用法:
格式:rsync [选项] 源文件 目标文件 
和scp显示 

-a =-rlptgoD 
-r 递归
-l  连接  
-p  权限 
-t  保持时间 
-g   保持组 
-o 
-D 
-z  压缩
-P  进度 
-u  更新 
--port= 
--delete删除源文件中没有的数据 
--password-file=FILE 从file中得到密码 
--bwlimit=KBPS 限制
--filter ''  需要过滤的文件 
--excu
实例
创建用户 

创建目录 
修改权限 
   setfacl  -R -m user:youdi:rwx  /var/www
    setfacl -R -m d:user:youdi:rwx /var/www 
    
开始备份 
rsync -azP  --delete youdi@172.16.1.84:/  /tmp 

实现无密码备份和登录:
ssh-key -t rsa -f -p''
ssh-copy-id youdi@172.16.1.84 
编写脚本
vim /etc/back.sh 
rsync -az --delete youdi@172.16.1.84:/var/www/html  /tmp/html 
计划任务:
 vim /etc/crontab 
 分 时 日 月  周    用户   脚本 
 
 crontab -e 
 
 备份完打包
  tar cvzf aa.tar.gz  /etc/** 
配置rsync服务器及需要备份的目录,不使用系统用户进行备份。
需要自己创建配置文件:
 /etc/rsync.conf  
 整体部分:
 全局参数:对rsync服务器生效。如果模块
 局部参数:
 
 vim /etc/rsync.conf 
  全局参数 
  uid=nobody 
  gid=nobody 
  address = 172.16.1.84 
  port = 83 
  hosts allow =  允许同步的的客户端 
    IP,network ,* 
    hosts deny =
    use chroot = yes  锁定家目录
    maxconnections = 最大连接数 
    pid file = 
    lock file = 
    log file = 
    motd file = /etc/rsync.mothod 
    
    模块参数:
    [wwwroot]
    path=/var/www/html 
    comment=rsync wwwrppt of   描述 
    read only = yes 以只读的方式
    list=yes 允许查看模块信息
    auth users=backuper 指定备份的用户,和系统用户无关
    secrets file=/etc/rsync.passwd 指点存放用户和密码文件  格式: 用户名:密码 
    
vim /etc/rsync.passwd 
   backup:youdi 


修改密码文件的权限: 
chmod 600 /etc/rsync.passwd

启动服务:
vim  /etc/xinetd/rsync

service xinetd restart
语法:
rsync 选项 用户名@备份源服务器IP::共享模块名  目标目录
rsync -azP bckup@172.16.1.84::wwwroot /web-back/
实现无交互脚本,备份数据
修改变量: 
    export RSYNC_PASSWORD=pwd123
总结:

注意iptables的限制

  iptables -t netfilt -A INPUT -p tcp --dport 873 -j ACCEPT 
进阶 inotify 监控文件的变化

rsync + inotify

linux内核从2.6.13版本开始开始提供inotify通知接口,用来监控文件系统的各种变化情况,如文件存取,删除,移动等。利用这一机制,可以非常方便的实现文件异动告警,增量备份,并针对目录或文件的变化及时作出响应。

应用

防首页篡改
使用rsync工具与inotify机制相结合,可以实现出发时备份(实时同步),只是原始位置的文档发生变化,则立即启动自动增量备份操作,否则处于静态等待,这样一来,就可以避免了按固定周期备份进存在的延迟性,周期过密等问题。

扩展:
uname -r 
/proc/sys/fs/inotify 
max_queued_events  #表示监控事件队列 
 max_user_instances  #表示最多监控实例数
 max_user_watches  #表示每个实例最多监控文件数 

修改: 
/etc/sysctl.conf 
fs.inotify.max_queued_events = 32768 
fs.inotify.max_user_instances = 1024 
fs.inotify.max_user_watches = 9000000

使得配置文件生效: 
sysctl -p 

安装inotify-tools
安装inotify-tools,提供inotyfywait,inotifywatch辅助工具程序,从而来监控,汇总文件系统改动情况。 


./configure --prefixe 
make -j 4  使用4个CPU一起编译 
make install 

测试: 
使用inotifywait命令监控网站的/www/html


inotifywait 
-e 用来指定要监控哪些事件 
    这些事件包含:create创建,move移动。delete删除,motify修
    改文件内容,attrib属性更改。
-m  表示持续监控
-r 表示递归整个目录
-q 表示简化输出信息。


inotifywait -mrq -e create,move,delete,motify  /var/www

inotify -rmq 文件目录 
使用inotify输出监控结果中,每行记录中依次包括目录,事件,文件。据此可以识别变动情况。编写触发式同步脚本。

第一:
备份方向,远程备份,不需要用户和密码。同步不使用root用户。
第二:编写触发式脚本:
#!/bin/bash 
echo aaa bbb ccc |while read a b c  
  do 
     echo $a 
     echo $b 
     echo $c 
done 

思路:只要检测到变动或事件时,执行rsync上的同步操作即可。
#!/bin/bash 
inotifywait -mrq   /var/www/html |while read a b c 
do 
   rsync -azp --delete  /var/www/html  youdi@172.16.1.5:/tmp 
   
优化:
#!/bin/bash 
SRC=/boot/
DST=youdi@172.16.1.5:/tmp 

inotifywait -mrq $SRC |while read a b c 
do 
  /usr/bin/rsync  -ahqzt --delete $SRC $DST 
done 

使其开机自动启动:
/etc/rc.local
图示

另外,金山Sersync是一款基于 inotify + rsync 的大量文件的多服务器自动同步程序。推荐使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容

  • rsync介绍 我们经常需要在不同目录或者服务器之间做文件同步和更新,LINUX提供了很多内置命令可以使用比如SC...
    狗狗胖妞阅读 452评论 0 0
  • 一、什么是rsync rsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用...
    逗比punk阅读 2,385评论 0 1
  • 4层负载均衡和7层负载均衡的区别。A、rsync的安装;软件包安装# yum install rsync 注...
    米开朗基乐阅读 3,630评论 0 1
  • 说明: 操作系统:CentOS 5.X 源服务器:192.168.21.129 目标服务器:192.168.21....
    好一朵阅读 1,223评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,517评论 18 139