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

本文介绍了rsync这款远程同步工具的原理、应用场景,重点讲解了如何配置rsync源,包括rsyncd.conf配置文件设置、独立账号管理以及rsync命令的使用技巧,适合备份源管理和增量同步。


前言

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/ lisi@192.168.163.10::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 有点优点就是双方主机文件可以增删同步

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

下载前可以先看下教程 https://pan.quark.cn/s/16a53f4bd595 小天才电话手表刷机教程 — 基础篇 我们将为您简单的介绍小天才电话手表新机型的简单刷机以及玩法,如adb工具的使用,magisk的刷入等等。 我们会确保您看完此教程后能够对Android系统有一个最基本的认识,以及能够成功通过magisk root您的手表,并安装您需要的第三方软件。 ADB Android Debug Bridge,简称,在android developer的adb文档中是这么描述它的: 是一种多功能命令行工具,可让您与设备进行通信。 该命令有助于各种设备操作,例如安装和调试应用程序。 提供对 Unix shell 的访问,您可以使用它在设备上运行各种命令。 它是一个客户端-服务器程序。 这听起来有些难以理解,因为您也没有必要去理解它,如果您对本文中的任何关键名词产生疑惑或兴趣,您都可以在搜索引擎中去搜索它,当然,我们会对其进行简单的解释:是一款在命令行中运行的,用于对Android设备进行调试的工具,并拥有比一般用户以及程序更高的权限,所以,我们可以使用它对Android设备进行最基本的调试操作。 而在小天才电话手表上启用它,您只需要这么做: - 打开拨号盘; - 输入; - 点按打开adb调试选项。 其次是电脑上的Android SDK Platform-Tools的安装,此工具是 Android SDK 的组件。 它包括与 Android 平台交互的工具,主要由和构成,如果您接触过Android开发,必然会使用到它,因为它包含在Android Studio等IDE中,当然,您可以独立下载,在下方选择对应的版本即可: - Download SDK Platform...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值