服务器数据同步:Rsync+Inotify实时同步

本文介绍Rsync的原理与应用,包括如何在不同主机间进行增量备份及实时同步,配合Inotify工具实现文件系统变化的即时响应。

一:Rsync 理论

1.1:什么是rsync?有什么作用

  • rsync,全称为:Remote Sync(远程同步),是一款开源的快速增量备份工具,可以在不同主机之间镜像同步整个目录树
  • 还支持本地复制,增量备份、保持连接和权限,或者与其他SSH,rsync主机同步
  • 采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用

mark

1.2:rsync源服务器的关系

  • mark

二:Rsync 实验

2.1:rsync命令集锦

  • 1、启动rsync服务:rsync --daemon

  • 2、关闭rsync服务:kill $(cat /var/run/rsyncd.pid)

  • 3、同步本地文件系统数据:rsync [选项] 原始位置 目标位置

    例如:
    rsync /etc/fstab /opt '//同步本机的fstab文件到opt目录'
    rsync -rl /boot/grub /opt	'//同步本机的grub目录到opt目录'
    '//如果想要在/opt目录下也创建一个boot目录,那么命令需要为:rsync -R rl /boot/grub /opt '
    常用选项:
    -a:归档模式,递归并保留对象属性,等同于 -rlptgoD
    -r 对子目录以递归模式处理,主要是针对目录来说的,如果单独传一个文件不需要加-r,但是传输的是目录必须加-r选项
    -l 保留软链接
    -p 保持文件权限
    -v:显示同步过程的详细(verbose)信息
    -z:在传输文件时进行压缩(compress)
    -H:保留硬连接文件
    -A:保留ACL属性信息
    --delete:删除"目标""源"没有的文件
    --checksum:根据对象的校验和来决定是否跳过文件
    --progress 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等等
    路径的格式可以是本地路径,也可以是使用user@host:path或user@host::path的远程路径,如果主机和path路径之间使用单个冒号隔开,表示使用的是远程shell通信方式,而使用双冒号隔开的则表示的是连接rsync daemon
    
  • 4、源下行同步—客户机"拉" (恢复数据)(使用客户端将rsync服务器下的wwwroot共享模块下的内容同步到本地的/opt目录下(共享模块下的真实共享路径需要对other用户具有 ‘r’ 权限))

    • (1):命令格式用户名@主机地址::共享模块名

      例如:[root@client ~]# rsync -avz lisi@192.168.100.140::wwwroot /opt

    • (2):命令格式:rsync://用户名@主机地址/共享模块名

      例如:[root@client ~]# rsync -avz rsync://lisi@192.168.100.140/wwwroot /opt

    5、客户端上行同步—客户机"推" (备份数据)

    • 命令格式

      [root@client ~ ]# rsync -avz /var/www/html lisi@192.168.100.140::wwwroot

      “把站点目录上行往源去备份,备份到wwwroot模块”

    6、rsync通过ssh的方式同步

    • 命令与平常的scp命令类似

    • 例如:将本地/opt/abc.txt上传到目标服务器/opt目录:

      rsync -avz /opt/abc.txt lisi@192.168.100.140:/opt

    • 例如:将目标服务器/opt/qwe.txt文件下载到本地/opt目录下:

      rsync -avz lisi@192.168.100.140:/opt/qwe.txt /opt

    7、/etcrsync.conf介绍

    • vim /etc/rsyncd.conf
       
      motd file = /etc/rsyncd.motd    #设置服务器信息提示文件,在该文件中编写提示信息
       
      transfer logging = yes    #开启rsync数据传输日志功能
       
      log file = /var/log/rsyncd.log    #设置日志文件名,可通过log format参数设置日志格式
       
      pid file = /var/run/rsyncd.log    #设置rsync进程号保存文件名称
       
      lock file = /var/run/rsync.lock    #设置锁文件名称
       
      port = 873    #设置服务器监听的端口号,默认是873
       
      address = 192.168.0.230    #设置本服务器所监听网卡接口的ip地址
       
      uid = nobody    #设置进行数据传输时所使用的帐户名或ID号,默认使用nobody
       
      gid = nobody    #设置进行数据传输时所使用的组名或GID号,默认使用nobody
       
      #若为yes, rsync会首先进行chroot设置,将根映射在下面的path参数路径下,对客户端而言,系统的根就是path参数指定的路径。但这样做需要root权限,并且在同步符号连接资料时只会同步名称,不会同步内容。
       
      use chroot = no 
       
      read only = yes    #是否允许客户端上传数据,yes表示不允许
       
      max connections =10    #设置并发连接数,0表示无限制
       
      [common]    #自定义模块名,rsync通过模块定义同步的目录,可定义多个
       
      comment = web content    #定义注释说明字串
       
      path = /common    #同步目录的真是路径通过path指定
       
      ignore errors    #忽略一些IO错误
       
      #exclude = test/    #exclude指定common目录下某个目录可以不同步数据
       
      auth users = tom, jerry    #设置允许连接服务器的账户,此账户可以是系统中不存在的用户
       
      secrets file = /etc/rysncd.secrets    #密码验证文件名,该文件权限要求为只读,建议为600,仅在设置auth users后有效
       
      hosts allow = 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值