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同步备份的更多相关文章

  1. rsync数据同步备份

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

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

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

  3. rsync命令(同步/备份数据)

    rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...

  4. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  5. Linux下实现Rsync目录同步备份

    需求:对于开发机器做目录的数据备份 测试机IP:192.168.1.100   WEB目录:/bckup/ 下面我将用一台机器来备份上面测试机 /bckup下的所有数据,并实现时时同步 备份机器IP: ...

  6. Rsync+Inotify同步

    rsync服务安装与<rsync+sersync同步>环境一样! 安装inotify-tools 在源服务器10.10.2.191上操作: 1.查看服务器内核是否支持inotify ll ...

  7. inotify+rsync实时同步备份nfs

    学习教程总结: 1.主机1:172.16.1.41,安装rsync并运行rsync --daemon 配置好/etc/rsyncd.conf 和密码文件rscync.password并设置chomd ...

  8. rsync+inotify同步备份文件

    前言 rsync作用:man rsync可以看到解释为a fast, versatile, remote (and local) file-copying tool,主要进行文件的同步. inotif ...

  9. 使用rsync+inotify同步两台服务器文件

    目标功能:将B服务器文件同步到A服务器 A服务器rsyncd.conf配置 权限600 A服务器rsyncd.pas文件配置  权限600 同步文件路径 /data/wwwroot/shen/  权限 ...

随机推荐

  1. luoguP5283 [十二省联考2019]异或粽子

    题意 类似超级钢琴,找最优解用可持久化trie. code: #include<bits/stdc++.h> using namespace std; #define re registe ...

  2. 有史以来Mysql面试题大全详解?

    1.MySQL的复制原理以及流程 根柢原理流程,3个线程以及之间的相关: 主:binlog线程——记载下悉数改动了数据库数据的语句,放进master上的binlog中:​ 从:io线程——在运用sta ...

  3. 简化wcf的service设置

    使用wcf作为c/s的通信桥梁,就免不了要写wcf service,更免不了写一些配置. 但是在把系统中所有的.net remoting service都转换成wcf service以后,发现居然有2 ...

  4. CF-1132 C.Painting the Fence

    题目大意:现在有n个栅栏板,p个工人,每个工人可以涂一段区间的栅栏板,问如果雇佣p-2个工人,最多可以涂多少块栅栏板. 做法:先求出q个工人能涂得最多木板数,并统计每个木板被涂的次数.求被涂一次的木板 ...

  5. python实现定时任务那些你不知道的模块

    一.使用time中的sleep 这种方式最简单,在循环里放入要执行的任务,然后sleep一段时间在执行 from datetime import datetime import time # 每n秒执 ...

  6. Oracle SQL调优之表设计

    在看<收获,不止sql优化>一书,并做了笔记,本博客介绍一下一些和调优相关的表比如分区表.临时表.索引组织表.簇表以及表压缩技术 分区表使用与查询频繁而更新数据不频繁的情况,不过要记得加全 ...

  7. Python之np.random.permutation()函数的使用

    官网的解释是:Randomly permute a sequence, or return a permuted range. 即随机排列序列,或返回随机范围.我的理解就是返回一个乱序的序列.下面通过 ...

  8. Prometheus监控学习笔记之Prometheus查询无数据或者Grafana不显示数据的诡异问题

    0x00 概述 Prometheus和Grafana部署完成后,网络正常,配置文件正常,抓取agent运行正常,使用curl命令获取监控端口数据正常,甚至Prometheus内的targets列表内都 ...

  9. 查询SAP系统支持的ABAP版本

    7.52可以使用select 内表,但是怎么看版本呢? 如果有在开发中用到ABAP 7.4&7.5个版本的新语法时,需要考虑到系统支持的ABAP版本,那么要怎么查看呢? 其实这个和SAP的内核 ...

  10. WPF绑定 mode Using System.ComponentModel; IPropertyChanged, if(this.PropertyChanged!=null){ this.PropertyChanged.Invoke(this,new PropertyChangedEventArgs("Name"))

    Mode,它的类型为BindingMode的枚举类型,可以取TwoWay.OneWay.OnTime.OneWayToSource.Default. oneWay:使用 OneWay 绑定时,每当源发 ...