在同步过程中,每10个小时对同步失败的文件重新

2019-10-06 12:26 来源:未知

永利平台娱乐 1

简介:一款快速增量备份工具
Remote Sync,远程同步
支持本地复制,或者与其他SSH、rsync主机同步
官方网站:
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。
rsync同步示意图:
永利平台娱乐 2
rsync命令的用法
基本格式:rsync [选项] 原始位置 目标位置
常用选项:
-a:归档模式,递归并保留对象属性,等同于 -rlptgoD
-v:显示同步过程的详细(verbose)信息
-z:在传输文件时进行压缩(compress)
-H:保留硬连接文件
-A:保留ACL属性信息
--delete:删除目标位置有而原始位置没有的文件
--checksum:根据对象的校验和
-r:递归模式,包含目录及子目录中所有文件
-l:对于符号链接文件仍然复制为符号链接文件
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-D:保留设备文件及其他特殊文件

rsync介绍

一、概述

rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用。

配置rsync同步源:
1.建立/etc/rsync.conf配置文件
永利平台娱乐 3
注意:如果采用匿名同步的方式,只要将其中的auth users和secrets file配置记录去掉就可以了。
2.为备份账户创建数据文件,vim /etc/rsync_users.db,添加一行用户记录,以冒号分隔,用户名称为“backuper”,密码为“abc123”
永利平台娱乐 4
3.启动rsync服务程序,运行参数为“--daemon”,若要关闭rsync服务,可以采取kill进程的方式,如kill $(cat /var/run/rsyncd.pid)
永利平台娱乐 5
4.使用rsync备份工具(在rsync客户机,发起端,服务器B)
1)例:将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下(相当于本地备份)
永利平台娱乐 6
2)例:将rsync同步源上的网站根目录下载到本地的/root下进行备份(远程备份)
首先在服务器上配置防火墙,为了保证备份账户文件的安全,需要调整文件权限,避免账号信息泄露。并搭建一个简单的网页。
永利平台娱乐 7
3)执行远程备份
永利平台娱乐 8
4)例:将源服务器中的wwwroot共享模块(网站根目录),下载到本地的/myweb目录下,(删除目标位置有而原始位置没有的文件)首先确认在客户机上的/myweb下只有一个网页
永利平台娱乐 9
然后执行备份
永利平台娱乐 10
查看在客户机的/myweb(里面只有同步源服务器上的网页,本地的t385.html备份删除,因为加了--delete的备份选项)
永利平台娱乐 11
为了在同步过程中不用输入密码,需要创建一个密码文件。在执行rsync同步时使用选项“--password-file=密码文件路径”指定即可
永利平台娱乐 12
调整密码文件权限,创建任务计划
永利平台娱乐 13
永利平台娱乐 14
验证结果
永利平台娱乐 15
5.配置rsync+inotify实时同步
1)调整inotify内核参数,并让其生效
永利平台娱乐 16
永利平台娱乐 17
2)安装inotify-tools
永利平台娱乐 18
配置完后,执行make && make install命令
3)以监控网站目录/var/www/html为例(当/var/www/html进行增删改查的时候就会动态显示监控信息)
永利平台娱乐 19
6.编写触发式同步脚本
首先在同步源上进行操作(配置ssh)
1)创建用户rput: useradd rput && passwd rput
2)开启sshd服务: [root@web html]# service sshd start
3)允许rput用户登录: Vi /etc/ssh/sshd_config
添加:AllowUsers rput@192.168.1.8
永利平台娱乐 20
启用密钥对验证
永利平台娱乐 21
配置发起端:(实现实时同步需要使用秘钥对的方式验证身份)
1)建立秘钥对文件实现无交互式登录
永利平台娱乐 22
将公钥文件上传至服务器
永利平台娱乐 23
在服务器中导入公钥文本
永利平台娱乐 24
2)编写触发式同步脚本
Vi /opt/inotify_rsync.sh
永利平台娱乐 25
设置执行权限,和开机自启动
永利平台娱乐 26
注意:如果同步失败,在服务器上把/var/www/html目录设置为所有人写入权限。
Chmod -R 777 /var/www/html
永利平台娱乐 27
清空客户端/var/www/html中的网页(方便测试)
永利平台娱乐 28
在/var/www/html中添加网页aaa.html
永利平台娱乐 29
在服务器192.168.1.7上查看/var/www/html中有没有aaa.html (如果有代表同步正常)
永利平台娱乐 30

rsync,英文全称是remote synchronize,是一款实现远程同步功能的免费软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件。甚至还可以实现只同步一个文件里有变化的内容部分,所以可以实现快速的同步备份数据。同时,rsync还可以实现同步本地数据、删除文件和目录的功能。

 1、Rsync+Sersync 是什么?

        rsync的官方站点是http://rsync.samba.org/,目前最新版本是3.1.1,由Wanyne Davison进行维护。作为一种最常用的文件备份工具,rsync往往是Linux和UNIX系统默认安装的基本组件之一。

inotify介绍

  1)Sersync使用c++编写基于inotify开发的触发机制;

 

Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。

  2)Sersync可以监控所监听的目录发生的变化(包括新建、修改、删除),具体到一个文件名或目录名,然后触发rsync同步,只同步发生改变的文件或目录。如果只是目录下的文件发生变化,则只会同步变化的文件而不会同步目录。只有目录本身发生变化的时候才会同步目录。 

1、rsync:快速增量备份工具,实现远程同步,可使用ssh和rsync备份

rsync+notify实现自动同步

  3)自带crontab功能,只需在 xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。无需再额外配置crontab功能。

     rsync服务器:备份源,提供一个目录供客户端上传或下载

如果要实现定时同步数据,可以在客户端将rsync加入定时任务,但是定时任务的同步时间粒度并不能达到实时同步的要求。在Linux kernel 2.6.13后提供了inotify文件系统监控机制。通过rsync+inotify组合可以实现实时同步。

  4)使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状 态。

2、rsync的配置:

实验要求:

  5)有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则 每10个小时对同步失败的文件重新同步。

建立rsync的配置文件:/etc/rsyncd.conf

源服务器:192.168.177.132(rsync,httpd)

2、Rsync+Inotify-tools  与 Rsync+Sersync 区别

use  chroot=yes             禁锢在源地址

发起端:192.168.177.132(rsync,httpd,inotify-tools)

1)Inotify-tools只能记录被监控的目录发生的变化(包括新建、修改、删除),并不能监控是哪个文件或目录发生了改变;

port  837                   默认端口号为873

源服务器

     rsync同步的时候会把整个监控的目录整个同步过去,但数据量很大的时候,同步的时间就会很久(rsync同步要遍历整个目录进行文件对比)

pid  file                     进程号文件位置

# rpm -q rsync  //查看rsync有没有安装
# vim /etc/rsyncd.conf  //rsync的配置文件

2)Sersync可以监控所监听的目录发生的变化(包括新建、修改、删除),具体到一个文件名或目录名,然后触发rsync同步,只同步发生改变的文件或目录。如果只是目录下的文件发生变化,则只会同步变化的文件而不会同步目录。只有目录本身发生变化的时候才会同步目录。

hosts  allow                 允许访问客户机地址

 uid = nobody
 gid = nobody
 use chroot = yes
 address = 192.168.177.132
 port 873
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 hosts allow = 192.168.177.0/24

     rsync同步的时候之同步发生改变的文件或目录(因为每次发生变化的数据很小,所以速度很快)效率很高。

[wwwroot]                   共享名

 [wwwroot]
 path = /var/www/html
 comment = www.kgc.cn
 read only = yes
 dont compress  = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
 auth users = backuper
 secrets file = /etc/rsyncd_users.db
# vim /etc/rsyncd_users.db
  backuper:abc123  //账号跟密码的格式
# chmod 600 /etc/rsyncd_users.db
# yum install httpd -y  //安装web服务
# rsync --daemon  //启动rsync服务
# systemctl stop firewalld.service  //关闭防火墙
# setenforce 0  //增强性安全功能
# chmod 777 /var/www/html/
# cd /var/www/html
# echo "this is test" > 123.txt

 

path=/路径                   真正的文件夹位置

永利平台娱乐 31

3、小结

comment=                  描述

永利平台娱乐 32

 当同步的目录下的数据量很小时,可以使用Rsync+Inotify;当数据很大(几个G甚至更大的时候)、文件数很多时使用Rsync+Sersync。

read  only=yes|no              只读|读写

永利平台娱乐 33

 

auth  users=用户名            认证的用户

永利平台娱乐 34

二、服务部署

secrets  file=文件名路径          验证文件

发起端

1、环境介绍

验证文件格式:    用户名:密码

# systemctl stop firewalld.service
# setenforce 0  //必须先关闭防火墙
交互,输入的是源服务器的地址
# rsync -avz backuper@192.168.177.132::wwwroot /opt/ 
免交互,无需输入密码
# vim /etc/server.pass
# chmod 600 /etc/server.pass
# rsync -az --delete --password-file=/etc/server.pass backuper@192.168.177.132::wwwroot /opt

 系统:centos7.2  默认支持了inotify  内核:3.10.0-514.el7.x86_64   版本: jdk-8u111-linux-x64.tar、sersync2.5.4_64bit_binary_stable_final.tar.gz、rsync-3.0.9-17.el7.x86_64

权限必须设置为600

永利平台娱乐 35

linux内核从2.6.13开始支持inotify。

3、管理rsync服务:

rsync+inotify自动同步

 

启动:rsync  --daemon

inotify装在发起端

2、安装

停止:kill  进程号

rsync在源服务器上

#yum -y install rsync

4、rsync的使用

源服务器:
# vim /etc/rsyncd.conf
  read only = no
# pkill -9 rsync
# cd /var/run/
# rm -rf rsyncd.pid //删除pid进程
# rsync --daemon  //重启服务
发起端:
# chmod 777 /var/www/html/
# tar zxvf inotify-tools-3.14.tar.gz -C /opt //解压
# cd inotify-tools-3.14/
  ./configure
# yum install gcc gcc-c++ -y  //安装编译环境
# make && make install
# vim /etc/sysctl.conf  //进行优化
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
# sysctl -p  //立即生效
# inotifywait -mrq -e modify,create,move,delete /var/www/html/  //对站点进行监控
# vim /opt/inotify.sh  //编写能同步的脚本
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.177.132::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
    fi
done
# chmod +x inotify.sh
# ./inotify.sh

配置文件

格式:rsync  选项  原始位置  目标位置

永利平台娱乐 36

#cat /etc/rsyncd.conf

选项:-a:归档模式,等同于 -rlptgoD 

永利平台娱乐 37

uid = root
gid = root
use chroot = yes
永利平台娱乐,address = 192.168.1.202
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid

      -r:递归,包含目录

永利平台娱乐 38

lock file = /var/log/rsync.lock
max connections = 5
motd file = /etc/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[config]
        path = /data/mongodb/conf
        comment = copy  config for cluster every node
        read only = no
        dont compress = *.gz *.bz2 *.tgz *.xz *.zip *.rar *.z
        auth users = root            #用户必须为系统用户
        secrets file = /etc/rsyncd.pas
        list = no
        ignore errors

      -p:权限(保留权限)

永利平台娱乐 39

        exclude = logs/;slaves;master 

      -t:时间

CentOS 6.5 rsync+inotify实现数据实时同步备份
rsync+inotify实现数据的实时同步
rsync+inotify实现服务器之间文件实时同步详解 
Rsync结合Inotify 实时同步配置 
RSync实现数据备份 
inotify+rsync实现数据实时同步 
rsync+inotify实现数据的实时备份 
rsync+inotify实现数据自动同步 
使用rsync实现数据实时同步备份 
unison+inotify实现数据实时双向同步 

       hosts allow = 192.168.1.201

      -z:压缩

Linux公社的RSS地址:

       hosts deny = *

      -v:同步过程信息

本文永久更新链接地址

保存退出;

      --delete:删除目标位置有而原始位置没有的文件

永利平台娱乐 40

创建密码文件

5、备份源(服务器端)的表达方式:

#echo "root:666666"  > /etc/rsyncd.pas

1)用户名@服务器IP::共享名

root是用户名,666666是密码,用户名与密码之间使用冒号分割,每个用户单独一行。

例:benet@192.168.1.100::wwwroot

#chmod 600  /etc/rsyncd.pas

TAG标签:
版权声明:本文由永利平台娱乐发布于关于我们,转载请注明出处:在同步过程中,每10个小时对同步失败的文件重新