旧,rsync

旧,html

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

在远程同步任务中,负责发起rsync同步操做的客户机称为发起端,而负责响应来自客户机的rsync同步操做的服务器称为同步源,在同步过程当中,同步源负责提供文档的原始位置,发起端对该位置具备读取权限,如图算法

 

 配置rsync同步源(在同步源上配置,如图服务器A)服务器

rsync做为同步源时以守护进程运行,为其余客户机提供备份源。配置rsync同步源须要创建配置文件/etc/rsyncd.conf,建立备份帐号,而后将rsync程序以‘--daemon’选项运行工具

vi /etc/rsyncd.conf优化

 _______________________________________________________________________________________________________________ui

uid=root #以哪一个用户的身份来传输   
gid=root  #以哪一个组的身份来传输
use chroot = yes #禁锢在源目录
address=192.168.0.10  #监听地址
port=873        #监听端口默认为873,也能够是别的端口
log file=/var/log/rsync.log  #指定日志位置
pid file=/var/run/rsyncd.pid  #指定pid文件位置spa

以上部分为全局配置部分,如下为模块内的设置日志

 

[wwwroot]    #共享模块名,自定义
path=/var/www/html   #源目录的实际路径
use chroot=true #是否限定在该目录下,默认为true,当有软链接时,须要改成fasle,若是为true就限定为模块默认目录
max connections=4  # 指定最大能够链接的客户端数
read only=no #是否为只读,若是是yes的话,客服端推送给服务端的时候不成功,这时候要改为no
list= no  #是否能够列出模块名    rsync --port 8730   172.16.37.139::  若是为yes的话会列出服务端全部的模块名字。  
comment = Document root of it小能手 #描述信息
dont compress = *.gz *.tgz #同步时不在压缩的文件类型
auth users=test #指定受权帐户
secrets file=/etc/rsyncd.passwd #存放帐号信息的数据文件,若是设定验证用户,这一项必须设置,设定密码权限为400.
hosts allow=192.168.0.101 #设置能够容许访问的主机,能够是网段,多个Ip地址用空格隔开code

 ____________________________________________________________________________________________________________________

建立帐号数据文件/etc/rsyncd.passwd的内容格式为:backuper:pwd123(username:password)
启动服务的命令是:rsync --daemon 
默认去使用/etc/rsyncd.conf这个配置文件,也能够指定配置文件 rsync --daemon --config=/etc/rsyncd2.conf,更改配置文件不用重启服务,即时生效。 

 同步时能够采用匿名的方式,只要将其中的auth user 和secrets file 配置记录去掉就能够了

备份用户backuper须要对源目录/var/www/html 有相应的读取权限。实际上只要other组有读取权限,则备份用户backuper和运行用户nobody也就有读取权限了
ls -ld /var/www/html
 drwxr-xr-x. 2 root root 4096 5 月 2 2018 /var/www/html

 

rsync命令的基本用法(在发起端上执行rsync命令,如上图服务器B)

rsync [选项]  原始位置 目标位置
  rsync 命令须要指定同步源服务器中的资源位置。rsybc同步源的资源位置表示方式为  “username@主机地址::共享模块名”  或者  "rsync://username@主机地址/共享模块名"
    例如: rsync  -avz backuper@192.168.4.200::wwwroot /root    或者  rsync -avz rsync://backuper@192.168.4.200/wwwroot /root

经常使用选项如
  -r : 递归模式,包含目录及子目录中的全部文件|
  -l : 对于符号连接文件仍然复制为符号连接文件
       -v : 显示同步过程当中的详细信息
  -a :归档模式,保留文件的权限,属性等信息 等同于组合选项“-rlptgoD”
  -z : 在传输文件时进行压缩
  -p :  保留文件的权限标记
  -t :  保留文件的时间标记
  -g :保留文件的属组标记(仅超级用户使用)
  -o : 保留文件的属主标记(仅超级用户使用)
  -H:保留硬连接文件
  -A : 保留ACL属性信息
  -D :保留设备文件及其其余特殊文件
  --delete: 删除目标位置有而原始位置没有的文件
  --checksum: 根据校验和(而不是文件大小,修改时间)来决定是否跳过文件
  --password-file=密码文件路径和名 ,为了在同步过程当中不用输入密码,须要建立一个密码文件,保存备份用户的密码,在执行rsync同步时使用选择‘“--password-file=”指定便可

 

 rsync+inotify 实时同步

inotify通知接口,用来监控文件系统的各类变化,如文件存取,删除,移动,修改等。利用这一机制,能够很是方便地实现文件异动告警,增量备份,并针对目录或文件的变化及时做出响应
将rsync工具和inotify机制相结合,能够实现触发式备份(实时同步)--------只要原始位置的文档发生变化,则当即启动增量备份操做,不然处于静态等待状态。这样就避免了按固定周期备份时存在的延迟性,周期过密等问题。

 

 由于inotify通知机制由linux内核提供,所以主要作本机监控,在触发式备份中应用时更适合上行同步

配置

1.调整inotify内核参数
  在linux内核中,默认的inotify机制提供三个调控参数:max_queue_events,max_user_instances,max_user_watches,分别表示监控事件队列(16384),最多监控实例数(128),每一个实例最多监控文件数(8192)

   cat /proc/sys/fs/inotify/max_queue_events

    16384

   cat /proc/sys/fs/inotify/max_user_instances

    128


   cat /proc/sys/fs/inotify/max_user_watches

    8192


   

 未完待续。。。。

 

 

 

 

常见错误

 

@ERROR: auth failed on module wwwroot               (wwwroot 是本身的模块名)
rsync error: error startingclient-serverprotocol (code 5) at main.c(1503) [sender=3.0.6]

查看 服务端/etc/rsync.password(存放帐号密码信息的文件) 配置文件是否有问题

好比:

多余的空格 空行

错误缘由

1>    客户端密码文件的权限不是600

2>    服务端密码文件不是600

3>    服务端密码文件不存在(名字写错了/没有建立/配置文件参数写错了)

4>    服务端密码文件里保存的用户名和密码不正确

相关文章
相关标签/搜索