(1)rsync介绍

1.rsync介绍

开源,实现全量及增量的本地或远程数据同步备份工具

2.工作场景:

存储实时备份:rsync+inotify

定时备份:rsync+crond

3.rsync工作方式

1)单个主机本地之间的数据传输

2)借助rcp,ssh等通道来传输数据,类似scp命令

3)以守护进程的方式(socket)

通道模式:借助ssh
推:push
方式一:rsync -e 'ssh -p 22' /etc/hosts root@192.168.111.103:/tmp
方式二:rsync -avz -e 'ssh' /etc/hosts root@192.168.111.103:/tmp
拉:poll
方式一:rsync -avz -e 'ssh ' root@192.168.111.103:/etc/passwd /tmp
方式二:rsync -e 'ssh ' root@192.168.111.103:/etc/passwd /tmp

4.rsync参数

-v	详细模式输出,传输时的进度等信息
-z compress,压缩传输,提高传输效率
-a 归档模式,表示以递归方式传输文件,并保存所有文件属性,等于-rvztopgD1
-P 显示同步的过程及传输时的进度等信息;

(2)rsync服务器端配置,也就是备份服务器



1.创建rsync配置文件,默认不存在

#yum install rsync -y
#vim /etc/rsyncd.conf
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[data]
path = /data/
ignore errors
read only = false
list = false
hosts allow = 192.9.191.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

2.创建用户和备份目录以及修改属主

useradd rsync -s /sbin/nologin
mkdir /data
chown -R rsync.rsync /data

3.创建客户端虚拟用户以及密码文件,修改密码文件权限

echo "rsync_backup:redhat"  >/etc/rsync.password			//虚拟用户密码是redhat
chmod 600 /etc/rsync.password

4.启动服务和开机启动

echo " rsync --daemon" >>/etc/rc.local
rsync --daemon

5.验证,rsync端口873

ps -ef | grep rsync
ss -antlup | grep 873

6.关闭selinux和防火墙

(3)rsync客户端配置

1.安装rsync和创建目录

yum install rsync -y

mkdir /data1

2.创建密码文件

echo "redhat" >/etc/rsync.password  && chmod 600 /etc/rsync.password

3.拉和推

pull:拉,在客户端上从服务器的/data目录的数据拉到本地的/data1目录
需要输入密码:rsync -avz rsync_backup@192.9.191.30::data /data1 --password-file=/etc/rsync
不需要输入密码:rsync -avz rsync_backup@192.9.191.30::data /data1 --password-file=/etc/rsync.password
push:推,把客户端本地/data1/目录下的文件推到备份服务器的/data目录
不需要输入密码:rsync -avz /data1 rsync_backup@192.9.191.30::data --password-file=/etc/rsync.password
注意:/data1/推送目录下的文件,不包含目录名,/data推送包含目录名

4.无差异同步,参数--delete

推push:备份,本地有啥,远端就有啥,本地没有的远端有也要删除,删除器端的目录数据可能丢失
rsync -avz --delete /data1 rsync_backup@192.9.191.30::data --password-file=/etc/rsync.password
拉pull:远端有啥,本地就有啥,远端没有的本地有也要删除。本地端的目录数据可能丢失
rsync -avz --delete rsync_backup@192.9.191.30::data /data1 --password-file=/etc/rsync.password

(3)inotify客户端配置

作用:inotify监控目录的实时变化,然后通知调用rsync执行rsync命令同步数据

1.查看当前系统是否支持inotify

#ll /proc/sys/fs/inotify/
-rw-r--r-- 1 root root 0 5月 20 18:14 max_queued_events
-rw-r--r-- 1 root root 0 5月 20 18:14 max_user_instances
-rw-r--r-- 1 root root 0 5月 20 18:14 max_user_watches

2.下载和编译安装inotify

wget  http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar xf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify
make && make install

3.添加环境变量

echo "PATH=$PATH:/usr/local/inotify/bin/" >>/etc/profile  && source /etc/profile

4.测试监控时间,开启多窗口创建文件

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move /data1

5.inotify脚本

#vim /server/scripts/inotify.sh
#!/bin/bash
host=192.9.191.30
src=/data1
dst=data
user=rsync_backup
rsync_passfile=/etc/rsync.password
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $src | while read file
do
rsync -az --delete $src $user@$host::$dst --password-file=$rsync_passfile
done

6.启动脚本并测试

nohup bash /server/scripts/inotify.sh &
echo "nohup bash /server/scripts/inotify.sh &" >>/etc/rc.local
touch /data/file1 //触发inotify服务
在备份服务器上验证:ll /data/data1

7.inotify优化

echo 50000000 >/proc/sys/fs/inotify/max_user_watches
echo 327679 >/proc/sys/fs/inotify/max_queued_events

8.inotifywait参数详解

-r:递归
-q:打印很少的信息,仅仅打印监控事件信息,
-m:始终保持时间监听状态
-exludei :排除文件或目录时,不区分大小写
-e:通过此参数可以执行需要监控的事件
access:
modify:文件或目录内容被修改
attrib:文件或目录属性被改变
close:
open:
moved_to :
move:
create:
delete:文件或目录被删除
mount:
umount

CentOS7安装和配置rsync+inotify的更多相关文章

  1. 配置rsync+inotify实时同步

    与上一篇同步做 配置rsync+inotify实时同步 1:调整inotify内核参数 在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events.max_user ...

  2. Centos7安装并配置mysql5.6完美教程

    Centos7安装并配置mysql5.6完美教程 Centos7将默认数据库mysql替换成了Mariadb,对于我们这些还想使用mysql的开发人员来说并不是一个好消息.然而,网上关于Linux安装 ...

  3. CentOS7安装及配置vsftpd (FTP服务器)

    CentOS7安装及配置vsftpd (FTP服务器) 1.安装vsftpd 1 yum -y install vsftpd 2.设置开机启动 1 systemctl enable vsftpd 3. ...

  4. 开发--CentOS-7安装及配置

    开发|CentOS-7安装及配置 本文主要进行详细讲解CentOS7.5系统的安装过程,以及CentOS系统初始化技术.我并不想将这篇文章变成一个教程,尽管我将详细的进行每一步的讲解,enjoy! 前 ...

  5. CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)

    本文章向大家介绍CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置),主要包括CentOS7安装及配置vsftpd (FTP服务器FTP账号创建以及权限设置)使用实例.应用 ...

  6. centos7配置rsync+inotify数据实时共享

    关于centos7版本上面搭建rsync服务并且实现实时同步之前一直是在6版本上面搭建rsync服务,在7版本上面折腾了半天.此处总结下inotify下载地址:http://github.com/do ...

  7. centos 配置rsync+inotify数据实时同步2

    一.Rsync服务简介 1. 什么是Rsync 它是一个远程数据同步工具,它在同步文件的同时,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“rsync算法”来使本地和远程两个主机 ...

  8. centos 配置rsync+inotify数据实时同步

    何为rsync? 定义: rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,非常适用于异地备份 何为源端和发起端? 在远程同步过程中,负责发起rs ...

  9. Linux运维老司机:CentOS6.9配置安装并配置Rsync

    一.rsync简介 rsync全称remote sync,是一种更高效.可以本地或远程同步的命令,之所以高效是因为rsync会对需要同步的源和目的进度行对比,只同步有改变的部分,所以比scp命令更高效 ...

随机推荐

  1. Hbase万亿级存储性能优化总结

    背景 hbase主集群在生产环境已稳定运行有1年半时间,最大的单表region数已达7200多个,每天新增入库量就有百亿条,对hbase的认识经历了懵懂到熟的过程.为了应对业务数据的压力,hbase入 ...

  2. [LeetCode] Binary Tree Level Order Traversal 与 Binary Tree Zigzag Level Order Traversal,两种按层次遍历树的方式,分别两个队列,两个栈实现

    Binary Tree Level Order Traversal Given a binary tree, return the level order traversal of its nodes ...

  3. defer与async的区别

    当浏览器碰到 script 脚本的时候: <script src="script.js"></script> 没有 defer 或 async,浏览器会立即 ...

  4. Codeforces 617E XOR and Favorite Number莫队

    http://codeforces.com/contest/617/problem/E 题意:给出q个查询,每次询问区间内连续异或值为k的有几种情况. 思路:没有区间修改,而且扩展端点,减小端点在前缀 ...

  5. 判定对象是否存活的算法----GC_ROOT算法

    要应用GC_ROOT算法,判定某个对象是否会被回收,关键是要确定root.确定root之后,你就可以根据代码绘制可达链,从而就可以进行分析了,分析哪些对象会被泄漏,哪些对象会被回收,如果GC执行的时候 ...

  6. 「6月雅礼集训 2017 Day5」学外语

    [题目大意] 给出$\{P_i\}$,求经过以下操作后能够得到的不同序列个数: 第一步,选择$i, j$,交换$P_i,P_j$:第二步,把所有$P_x=i$的$P_x$变为$j$,把所有$P_x=j ...

  7. HDU 1465 不容易系列之一 (错排公式+容斥)

    题目链接 Problem Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好"一件"事情尚且不易,若想永远成功而总从不失败,那更是难上 ...

  8. POJ 2456 Aggressive cows ( 二分搜索)

    题目链接 Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The ...

  9. NYOJ 1237 最大岛屿 (深搜)

    题目链接 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王.  这是一个由海洋. ...

  10. bzoj 3450 DP

    首先我们设len[i]表示前i位,从第i位往前拓展,期望有多少个'o',那么比较容易的转移 len[i]=len[i-1]+1 s[i]='o' len[i]=0 s[i]='x' len[i]=(l ...