微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

rsync 远程同步、rsync+inotify 实时同步


前言

rsync 图标

在这里插入图片描述


rsync 和 scp 的区别,rsync做的工作不单是copy,还要比较新旧文件的改动,如果改动就更新,不改动就维持原状。而scp是直接覆盖的,比较粗暴,如果scp是文件夹的操作,那旧的文件有可能被直接删除了,因为是整个文件夹的覆盖。

一、rsync 远程同步

rsync(Remote Sync,远程同步)

  • 一款开源的快速备份工具
  • 支持本地复制
  • 也可以在不同主机(例如:其他SSH、rsync主机)之间镜像同步整个目录树,支持增量备份,并保持钳接和权限。
  • 采用优化的同步算法,传输前执行压缩,,因此非常适用于异地备份、镜像服务器等应用。
  • 官方网站:https://rsync.samba.org/

rsync 同步源

在远程同步任务中,负责发起rsync司步操作的客户机称为发起端,
而负责响应来自客户机的rsync同步操作的服务器称为同步源(备份源)

在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

例:
A服务器同步B服务器的数据,B服务器就是备份源
反过来,B服务器同步A服务器的数据,那么A服务器就是备份源

在这里插入图片描述

二、配置 rsync 源

  • 建立 rsyncd.conf 配置文件、独立的 rsync 账号文件(rpm -qc rsync)
    • 配置文件rsyncd.conf
      • 需手动配置,语法类似于Samba配置
      • 认证配置auth users、secrets file,不加则为匿名
    • rsync账号文件
  • 启用rsync服务
    • 通过 --daemon独自提供服务:rsync --daemon
    • 可以通过执行kill $(cat /var/run/rsyncd.pid)关闭服务

rsync命令

#命令的用法
rsync [选项] 原始位置 目标位置

发起端吧文件从原始位置 拷贝到 目标位置

#----------常用选项--------------------------
-r:递归模式,包含目录及子目录中的所有文件
-l:对于符号链接文件仍然复制为符号链接文件
-v:显示同步过程的详细(verbose)信息。
-z:在传输文件时进行压缩(compress)。
-a:归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgoD”。
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)。
-o:保留文件的属主标记(仅超级用户使用)。
-H:保留硬连接文件
-A:保留 ACL 属性信息。
-D:保留设备文件及其他特殊文件
--delete:删除目标位置有而原始位置没有的文件,删除差异文件,保留一致性。
--checksum:根据校验和(而不是文件大小、修改时间)来决定是否跳过文件
--password-file=file:从file中得到密码,用于免交互处理,file文件的权限要是600

比如 rsync -avz

rsync+inotify
编写触发式同步脚本

vim /opt/inotify_rsync.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/abc/"   #监控/opt/abc/ 目录的创建删除移动修改权限操作
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/abc/ [email protected]::wwwroot"

#$INOTIFY_CMD 开启,将结果一行一行读取,如果监控到 执行 whiile 循环
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC_CMD
	fi
done

cd /opt/
chmod +x inotify_rsync.sh
. /opt/inotify_rsync.sh &

#加入开机自动执行
chmod +x /etc/rc.d/rc.local
echo '/opt/inotify_rsync.sh' >> /etc/rc.d/rc.local

inotify 有点优点就是双方主机文件可以增删同步

删除 就是用 空文件夹替换原文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐