快速学会rsync远程同步

标签: rsync  linux

一、rsync同步简介

1、一款快速增量备份工具

 Remote Sync,远程同步
  支持本地复制,或者与其他SSH、rsync主机同步

2、应用场景

“推”
     即由客户端推送数据至服务器,比如个人电脑上传数据至云盘。
   “拉”
     即由客户端拉取服务器上的数据,比如利用个人电脑下载云盘文件。

3rsync 包括如下的一些特性

1. 能更新整个目录树和文件系统;
2. 有选择性的保持符号链链、硬链接、文件属性、权限、设备以及时间等;
3. 传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
4. 能用rsh、ssh 或直接端口做为传输端口;
5. 支持匿名rsync 同步文件,是理想的镜像工具;

Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。
在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客机的rsync同步操作的服务器称为备份源。

二、配置rsync源服务器

2.1、rsync同步源简介

指备份操作的远程服务器,也称为备份源
在这里插入图片描述

2.2、如何配置rsync源

1、基本思路

 修改rsyncd.conf配置文件、独立的密码文件
 启用rsync的--daemon模式

2、应用示例

 用户backuper,允许下行同步
 操作的目录为/var/www/html

3、配置文件rsyncd.conf

 语法类似于Samba配置
 认证配置auth users、secrets file,不加则为匿名(nobody)

4、rsync账号文件

采用“用户名:密码”的记录格式,每行一个用户记录
独立的账号数据,不依赖于系统账号(安全)

5、如何启动和关闭rsync

启动rsync:rsync --daemon
关闭rsync:kill $(cat /var/run/rsyncd.pid)

2.3、如何使用rsync备份工具

rsync命令的用法

rsync [选项] 原始位置 目标位置
常用选项
  -a:归档模式,递归并保留对象属性,等同于-rlptgoD
  -v:显示同步过程的详细信息
  -z:在传输文件时进行压缩
  -H:保留硬连接文件
  -A:保留ACL属性信息
  --delete:删除目标位置有而原始位置没有的文件
  --checksum:根据对象的校验和来决定是否跳过文件

三、配置rsync远程同步

3.1、环境

在这里插入图片描述

3.2、具体步骤

1、rsync源站配置

1.确认rsync是否已经安装(Centos 7.6自带安装)

[root@Rsync ~]# rpm -q rsync
rsync-3.0.9-18.el7.x86_64

2、修改配置文件

[root@Rsync ~]# vi /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes           #禁锢家目录
address = 192.168.73.10     #提供同步服务的地址
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.73.0/24   #允许同步的网段

[wwwroot]
path = /var/www/html   #同步的目录
comment = www.test.com
read only = yes      #只读模式开启
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2   #这些结尾的文件同步时不再压缩
auth users = backuper     
secrets file = /etc/rsyncd_users.db   #用户密码存放在secrets file中

3、创建backuper用户的密码文件

[root@Rsync ~]# vi /etc/rsyncd_users.db
backuper:abc123

4、服务端的密码文件要600权限

[root@Rsync ~]# chmod 600 /etc/rsyncd_users.db

5、启动服务并查看状态

[root@Rsync ~]# rsync --daemon
[root@Rsync ~]# netstat -anpt | grep rsync
tcp        0      0 192.168.73.10:873       0.0.0.0:*               LISTEN      49133/rsync

2、发起端验证

1、方法一:

[root@client ~]# rsync -avz [email protected]::wwwroot /var/www/html
Password:
receiving incremental file list
./
index1.html

sent 83 bytes  received 153 bytes  67.43 bytes/sec
total size is 0  speedup is 0.00

2、方法二

[root@client html]# rsync -avz rsync://[email protected]/wwwroot /opt
Password:
receiving incremental file list
./
index1.html
index2.html

sent 102 bytes  received 209 bytes  88.86 bytes/sec
total size is 0  speedup is 0.00
[root@client html]# cd /opt
[root@client opt]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 11 19:31 index1.html
-rw-r--r--. 1 root root 0 11月 11 19:33 index2.html
drwxr-xr-x. 2 root root 6 3月  26 2015 rh
常用选项:
-r:递归模式,包含目录及子目录中的所有文件
-l:对于符号链接文件仍然复制为符号链接文件
-v:显示同步过程的详细信息
-a:归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgoD”
-z:在传输文件时进行压缩
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-H:保留硬连接文件
-A:保留ACL属性信息
-D:保留设备文件及其他特殊文件

免密方式同步文件:

要先在客户端本地创建密码文件/etc/server.pass

[root@client opt]# vi /etc/server.pass
abc123
[root@client opt]# mkdir /backup
[root@client opt]# rsync -az --password-file=/etc/server.pass [email protected]::wwwroot /backup
[root@client opt]# cd /backup
[root@client backup]# ll
总用量 0
-rw-r--r--. 1 root root 0 11月 11 19:31 index1.html
-rw-r--r--. 1 root root 0 11月 11 19:33 index2.html

四、rsync实时同步

4.1、为什么要实时同步

1、定期同步的不足
执行备份的时间固定,延迟明显,实时性差
当同步源长期不变化时,密集的定期任务是不必要的
2、实时同步的优点
一旦同步源出现变化,立即启动备份
只要同步源无变化,则不执行备份

4.2、关于inotify

1、Linux内核的inotify机制
从版本2.6.13开始提供
可以监控文件系统的变动情况,并做出通知响应
辅助软件:inotify-tools
在这里插入图片描述

4.3、rsync+inotify实时同步

1、调整inotify内核参数

[root@client ~]# vi /etc/sysctl.conf
fs.inotify.max_queued_events = 16384  ###监控事件队列大小
fs.inotify.max_user_instances = 1024  ###最多监控实例数
fs.inotify.max_user_watches = 1048576  ###每个实例最多监控文件数

[root@client ~]# sysctl -p
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

2、源站修改配置文件

[root@Rsync ~]# vi /etc/rsyncd.conf
read only = no

3、安装inotify-tools辅助工具

[root@client ~]# tar zxf inotify-tools-3.14.tar.gz -C /opt
[root@client ~]# cd /opt/inotify-tools-3.14/
[root@client inotify-tools-3.14]# ./configure
[root@client inotify-tools-3.14]# make && make install

4、开启监控

[root@client inotify-tools-3.14]# inotifywait -mrq -e modify,create,move,delete /var/www/html

inotifywait:用于持续监控,实时输出结果
inotifywatch:用于短期监控,任务完成后再出结果

  -m:持续进行监控
  -r:递归监控所有子对象
  -q:简化输出信息
  -e:指定要监控哪些事件类型
  modify:修改;create:创建;move:移动;delete:删除

5、测试监控是否正常使用
再开一个客户端终端会话

[root@client opt]# cd /var/www/html
[root@client html]# rm -rf index1.html
[root@client inotify-tools-3.14]# inotifywait -mrq -e modify,create,move,delete /var/www/html
/var/www/html/ DELETE index1.html

6、客户端上编写脚本,将inotify监控和rsync远程同步结合起来

[root@client ~]# vi inotify.sh
#!/bin/bash
INOTIFY="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html"
RSYNC="rsync -azH --delete --password-file=/etc/server.pass /var/www/html  [email protected]::wwwroot/"
$INOTIFY | while read DIRECTORY EVENT FILE   #逐条读取监控记录
do
        if [ $(pgrep rsync | wc -l) -le 0 ];then
            $RSYNC
        fi
done

###同步两边目录权限都为777

7、运行脚本,在客户端/var/www/html目录下创建文件,查看源端/var/www/html目录是否同步到
客户端:

[root@client ~]# cd /var/www/html
[root@client html]# touch test.txt

源站:

[root@Rsync ~]# cd /var/www/html
[root@Rsync html]# ll
总用量 0
drwxrwxrwx. 2 nobody nobody 59 11月 12 12:26 html
-rw-r--r--. 1 root   root    0 11月 12 11:31 index1.html
-rw-r--r--. 1 root   root    0 11月 12 11:33 index2.html
[root@Rsync html]# cd html
[root@Rsync html]# ll
总用量 4
-rw-r--r--. 1 nobody nobody  0 11月 12 11:33 index2.html
-rw-r--r--. 1 nobody nobody 14 11月 12 11:27 index.html
-rw-r--r--. 1 nobody nobody  0 11月 12 12:26 test.txt
版权声明:本文为weixin_47403060原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47403060/article/details/109637870

智能推荐

rsync ------ 远程同步

文章目录 一、rsync 同步简介: 二、rsync 命令的用法: 三、操作实例: 四、配合 inotify 工具使用: 五、操作实例: 一、rsync 同步简介: (1)Remote Sync ----- 远程同步,支持本地复制,或者与其他SSH 、rsync主机同步,功能类似于scp,但是要比scp丰富。 官方网站:http://rsync.samba.org (2)特点: 1、可以镜像保存整...

rsync远程同步

一、关于rsync: 1、一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步 官方网站:http://rsync.samba.org 2、基本思路: 建立rsyncd.conf配置文件、独立的账号文件 启用rsync的–daemon模式 3、应用示例: 用户backuper,允许下行同步 操作的目录为/var/www/html/ ...

rsync远程同步

文章目录 rsync rsync概述 rsync配置 源服务器 源服务器配置 rsync命令用法 rsync与inotify inotify inotify内核参数 inotifywait工具 rsync同步配置示例 rsync同步配置示例 源端配置 同步端配置 测试 rsync+inotify配置示例 配置步骤 安装inotify 测试inotify的功能 修改相应文件权限 测试 rsync 各...

Rsync远程同步

Rsync远程同步 一:rsync概述 1.1:关于rsync 一块快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步 r(remote)sync是unix以及类unix平台下的数据镜像备份软件,它不像ftp那样需要全备份,rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率 rsync可以远程或者本地实现增量备份。rsync...

rsync远程同步

rsync远程同步 文章目录 rsync远程同步 关于rsync 2. rsync命令的用法 3.rsync实时同步 3.1 定期同步的不足 3.2 实时同步的优点 4. inotify 4.1 调整inotify内核参数 4.2 安装inotify-tools辅助工具 5. 实验 rsync 远程同步 5.1 实验环境 5.2 实验目的 5.3 实验步骤 6.实验: inotify+rsync ...

猜你喜欢

rsync远程同步

rsync远程同步 关于rsync 配置rsync源 基本思路 应用实例 rsyncmingde用法 使用rsync实现手动远程同步 同步实验方法一 同步命令格式二(服务端配置) 免交互同步方法(客户端) 使用rsync实现手动远程同步 配置远程同步 服务端配置 客户端配置 关于rsync 款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步 官...

rsync远程同步

rsync远程同步 概述 概述 rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。 Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。 ...

rsync 远程同步

文章目录 一、概念 二、配置rsync 源服务器 2.1 、rsync 同步源 2.2 、配置rsync源 2.3、命令用法 2.4、配置源表示方法 三、实验 3.1、实验环境 3.2、实验过程 3.2.1、修改配置文件 3.2.2、创建于用户密码文件 3.2.3、启动rsync 服务 3.2.4、发起端配置 3.2.5、设置周期性计划任务 3.2.6、rsync + inotify 3.2.7、...

rsync远程同步简介

rsync远程同步 一、rsync同步简介 1-1 、关于rsync 二、 配置rsync备份源 2-1、 配置rsync源 三、rsync命令基本用法 3-1、 使用rsync备份工具 四、 rsync+inotify结合使用 4-1、 rsync远程同步 4-2、 rsync+inotify 一、rsync同步简介 1-1 、关于rsync ■ 一款增量备份工具 Remote Sync,远程同...

Rsync远程数据同步

一、 rsync 1、 安装rsync和rsync常见命令选项 (1) 安装rsync (2) rsync配置文件常见的选项 (3) 启动rsync服务 (4) 关闭rsync服务 (5) 配置rsync验证数据库 2、 rsync命令选项和使用 (1) rsync命令选项 (2) 使用rsync同步bdqn目录数据到benet (3) 同步源数据删除目标目录数据 (4) 使用账户密码访问 (5)...