rsync+inotify同步备份
1.rsync与scp区别
scp无法备份大量数据,先统计文件信息,后进行拷贝,如果文件大小超出磁盘空间,则无法拷贝
rsync边复制,边比较,边统计
2.rsync特点
(1.)支持增量备份
(2.)选择性的保持:符号链接,硬链接,文件属性,权限,时间
(3)传输前执行压缩,适用于异地备份,镜像服务器等应用。
(4.)使用ssh作为传输端口,sftp,ssh
(5.)rsync默认端口 873,是c/s架构,可以直接使用rsync命令,进行点到点的传输 。
(6.)官网:http://rsync.samba.org 推荐开源网站下载:https://sourceforge.net/
3.同步数据的方式
(1.)推:一台主机负责将数据传给其他主机,服务器开销大,适合后端服务器比较少
(2.)拉:所有知己定时去找一台主机拉数据,可能会导致数据同步缓慢。
一般做法:推拉结合,即主机A先将数据推送给主机B和主机C,然后其他主机D,E,F从B和C主机上拉取数据。
4.rsync安装
rpm -qf `which rsync`
ls /etc/xinetd.d/rsync
rpm -ivh /mnt/Package/xinetd-2.3.14-33.el6.x86_64.rpm
开启rsync服务
vim /etc/xinetd.d/rsync
将disable改为no
rsync监听端口 TCP 873
5.rsync命令基本用法
格式:rsync [选项] 源文件 目标文件
rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录
-a 归档
-p 保持原有文件权限
-t 保持原有文件时间
-g 保持原有文件的用户组
-o 保持原有文件的属主
-z 压缩传输
-P 显示传输进度
--delete 删除那些目标位置有而原始位置没有的文件
6.创建sync用户
useradd rget1
echo "123456" | password --stdin rget1
useradd rput1
echo "123456" | password --stdin rput1
设置权限
setfacl -R -m user:rput1:rwx /var/www/html/
serfacl -R -m user:rget1:rwx /var/www/html/
setfacl -R -m default:rget1:rwx /var/www/html/
getfacl /var/www/html/
7.同步文件
rsync -azP --delete rget1@192.168.1.63:/var/www/html/ /web-back/
注意:文件的权限要有拷贝的权限,如果没有加权限。
8.免密传输
ssh-keygen -t rsa //一路回车
ssh-copy-id rget1@192.168.1.63
ssh rget1@192.168.1.63 //测试登录
//实现无交互脚本
export RSYNC_PASSWORD=xxx
rsync -avz backer@192.168.1.63::www/root /web-back/
9.定期增量备份
crontab -e
0 1 3 * * * /root/rsync.sh //写一个同步脚本,定时同步数据
10.配置rsync服务器
(1.)创建自己的配置文件
/etc/rsyncd.conf
- 全局参数:对于rsync服务器生效,如果模块参数冲突,模块参数生效。
- 模块参数:定义rsync输出的目录的参数
(2.)创建备份账户,以daemon的方式运行rsync
11.添加防火墙规则
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
/etc/init.d/iptables save
12.rsync与inotify实现同步机制
(1.)inotify下载
https://sourceforge.net/projects/inotify-tools/
(2.)查看内核是否支持
uname -a //内核版本大于2.6.13即可
ll /proc/sys/fs/inotify/ //三个文件表示:监控事件队列 监控实例数 监控文件数
可以修改上述三个文件中的数字,vi /etc/sysctl.conf配置文件
fs.inotify.max_queued_events=32768
fs.inotify.max_users_instances=1024
fs.inotify.max_watches=90000
修改后,使文件生效
sysctl -p
查看是否修改成功
cat /proc/sys/fs/inotify/max_user_watches
(3.)安装inotify
tar -zxvf inotify-tools-3.1.3.tar.gz
./configure
make -j 4 //指定4核cpu进行编译
make install
(4.)inotifywait 用法
-e 用于指定监控哪些事件 creat delete move modify
-m 持续监控
-r 递归整个目录
-q 简化输出
示例:
inotify-wait -mrq -e create,move,delete,modify /var/www/html/
相关链接
https://linux.cn/thread-13095-1-1.html
https://www.cnblogs.com/chensiqiqi/p/6542268.html
----------------------------------【喜欢打赏】-------------------------------------------
小主,辛苦啦!文章棒棒哒,赏杯咖啡吧...
----------------------------------【喜欢打赏】-------------------------------------------
rsync+inotify同步备份的更多相关文章
- rsync数据同步备份
一.rsync简介 (1)rsync是什么? rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具. (2)rsync作用比较 远程拷贝:有点类似ssh的scp ...
- 搭建中小规模集群之rsync数据同步备份
NFS重要问题 1.有关NFS客户端普通用户写NFS的问题. 1)为什么要普通用户写NFS. 2)exports加all_squash. Rsync介绍 什么是Rsync? Rsync是一款开源的.快 ...
- rsync命令(同步/备份数据)
rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...
- 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken
前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...
- Linux下实现Rsync目录同步备份
需求:对于开发机器做目录的数据备份 测试机IP:192.168.1.100 WEB目录:/bckup/ 下面我将用一台机器来备份上面测试机 /bckup下的所有数据,并实现时时同步 备份机器IP: ...
- Rsync+Inotify同步
rsync服务安装与<rsync+sersync同步>环境一样! 安装inotify-tools 在源服务器10.10.2.191上操作: 1.查看服务器内核是否支持inotify ll ...
- inotify+rsync实时同步备份nfs
学习教程总结: 1.主机1:172.16.1.41,安装rsync并运行rsync --daemon 配置好/etc/rsyncd.conf 和密码文件rscync.password并设置chomd ...
- rsync+inotify同步备份文件
前言 rsync作用:man rsync可以看到解释为a fast, versatile, remote (and local) file-copying tool,主要进行文件的同步. inotif ...
- 使用rsync+inotify同步两台服务器文件
目标功能:将B服务器文件同步到A服务器 A服务器rsyncd.conf配置 权限600 A服务器rsyncd.pas文件配置 权限600 同步文件路径 /data/wwwroot/shen/ 权限 ...
随机推荐
- vbs与其他语言进行交互编程(外存传参)
vbs没有自定义排序函数.无需自己造轮子,可以用其他语言来完成这个任务(在传递数据比较简单的情况下,例如只传递数组). 首先用5分钟写一个C++排序的代码.命名为“mysort.cpp”: #incl ...
- 【CF280D】k-Maximum Subsequence Sum(大码量多细节线段树)
点此看题面 大致题意: 给你一个序列,让你支持单点修改以及询问给定区间内选出至多\(k\)个不相交子区间和的最大值. 题意转换 这道题看似很不可做,实际上可以通过一个简单转换让其变可做. 考虑每次选出 ...
- 【ECNU619】白网吧(差分)
点此看题面 大致题意: 给你\(n\)个区间,求最多有多少个区间重叠,以及平均每个点被多少个区间覆盖. 第一个询问 这个应该可以直接离散化+差分,即我们先把每个区间右端点加\(1\),然后对于一个离散 ...
- BDFramework.Core 学习
x哥(懂的都懂)的框架, 拿点代码过来做注释. 想了解详情可以去他的github https://github.com/yimengfan/BDFramework.Core # Object file ...
- 如果对象的引用被置为null,;垃圾回收器是否会立即释放对象占用的内存?
不会,在下一个垃圾回调周期中,这个对象将是被可回收的. 也就是说并不会立即被垃圾收集器立刻回收,而是在下一次垃圾回收时才会释放其占用的内存.
- 从游击队到正规军:马蜂窝旅游网的IM系统架构演进之路
本文引用自马蜂窝公众号,由马蜂窝技术团队原创分享. 一.引言 今天,越来越多的用户被马蜂窝持续积累的笔记.攻略.嗡嗡等优质的分享内容所吸引,在这里激发了去旅行的热情,同时也拉动了马蜂窝交易的增长.在帮 ...
- 【前端知识体系-JS相关】虚拟DOM和Diff算法
1.介绍一下vdom? virtual dom, 虚拟DOM 使用JS来模拟DOM结构 DOM变化的对比,放在JS层来做(图灵完备语言),提高效率 DOM操作非常昂贵(消耗性能) 2.Snabbdom ...
- Linux SELinux 使用操作
Linux SELinux 使用操作 # 修改 SELinux 启动模式.临时生效 命令:setenforce [0|1] 0:转成 permissive 宽容模式: 1:转成 Enforcing 强 ...
- Java生鲜电商平台-服务器部署设计与架构
Java生鲜电商平台-服务器部署设计与架构 补充说明:Java开源生鲜电商平台-服务器部署设计与架构,指的是通过服务器正式上线整个项目,进行正式的运营. 回顾整个章节,我们涉及到以下几个方面: 1. ...
- mask-rcnn的解读(三):batch_slice()
我已用随机生产函数取模拟5张图片各有8个box的坐标值,而后验证batch_slice()函数的意义.由于inputs_slice = [x[i] for x in inputs] output_sl ...