Rsync 远程同步指南
文章目录
Rsync 远程同步指南
- Rsync 简介
- 同步方式
- 常用 Rsync 命令
基本命令格式
常用选项: - Rsync 源配置格式
格式一:
格式二: - Rsync 服务端与客户端实验
前提:
实验环境:
① 配置 Rsync 源服务器(192.168.10.18)
② 客户端配置(192.168.10.20) - Rsync + Inotify 实现触发式同步
- 修改 Rsync 源服务器配置:
- 调整 inotify 内核参数:
- 安装 inotify-tools:
- 编写触发式同步脚本:
Rsync 实现快速删除大量文件
选项说明:
Rsync 远程同步指南 - Rsync 简介
Rsync(Remote Sync,远程同步)是一个开源的快速备份工具,常用于在不同主机之间进行目录树的镜像同步。它支持增量备份,能够保留文件的链接和权限,且使用了优化的同步算法,使得它在进行数据传输时非常高效。在传输文件前,Rsync 会对文件进行压缩,因此非常适合用于异地备份、镜像服务器等场景。
在 Rsync 远程同步任务中:
发起端:负责发起 Rsync 同步操作的客户机。
同步源:负责响应来自发起端 Rsync 操作的服务器,提供要同步的文件。发起端需要对同步源位置具有读取权限。
Rsync 通常用于 Linux 系统的数据镜像备份,支持远程同步和本地复制。它可以实现全量备份和增量备份,保持文件链接、权限、属性,并通过压缩提高传输效率。适用于架构集中式备份或异地备份等应用场景。
- 同步方式
Rsync 提供以下三种主要备份方式:
完整备份:每次备份时,将所有文件或目录从备份源完整备份到目的地。
差量备份:备份自上次完整备份后发生变化的数据,不会清除存档属性。
增量备份:备份自上次备份(无论是增量备份还是完整备份)后发生变化的数据,会清除存档属性。
在 Rsync 同步过程中:
发起端:发起同步操作的客户机。
备份源:响应客户机同步请求的服务器,即需要备份的服务器。
服务端:运行 Rsync 服务的服务器,通常也是备份源。
客户端:存放备份数据的设备。
3. 常用 Rsync 命令
基本命令格式
rsync [选项] 原始位置 目标位置
1
常用选项:
-r:递归模式,包含目录及其子目录中的所有文件。
-l:对于符号链接文件,保留为符号链接文件。
-v:显示同步过程的详细信息。
-z:在传输文件时进行压缩。
-a:归档模式,保留文件权限、属性等信息,等同于组合选项 -rlptgoD。
-p:保留文件的权限标记。
-t:保留文件的时间标记。
-g:保留文件的属组标记(仅超级用户使用)。
-o:保留文件的属主标记(仅超级用户使用)。
-H:保留硬连接文件。
-A:保留 ACL 属性信息。
-D:保留设备文件及其他特殊文件。
--delete:删除目标位置有而原始位置没有的文件。
--checksum:根据校验和决定是否跳过文件,而非文件大小或修改时间。
4. Rsync 源配置格式
Rsync 源有两种配置表达方式:
格式一:
用户名@主机地址::共享模块名
1
示例:
rsync -avz backuper@192.168.10.22::wwwroot /opt/
1
格式二:
rsync://用户名@主机地址/共享模块名
1
示例:
rsync -avz rsync://backuper@192.168.10.22/wwwroot /opt/
1
5. Rsync 服务端与客户端实验
前提:
关闭防火墙和增强功能:
systemctl stop firewalld
setenforce 0
1
2
实验环境:
服务端:192.168.10.18
客户端:192.168.10.20
① 配置 Rsync 源服务器(192.168.10.18)
检查 Rsync 是否已安装:
rpm -q rsync
1
建立配置文件 /etc/rsyncd.conf,并添加以下配置:
uid = root
gid = root
use chroot = yes
address = 192.168.10.18
port = 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.10.0/24
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
[wwwroot]
path = /var/www/html
comment = Document Root of www.kgc.com
read only = yes
auth users = backuper
secrets file = /etc/rsyncd_users.db
创建用户文件 /etc/rsyncd_users.db:
vim /etc/rsyncd_users.db
内容:
backuper:123456
设置权限:
chmod 600 /etc/rsyncd_users.db
chmod +r /var/www/html/
启动 Rsync 服务:
rsync --daemon
netstat -anpt | grep rsync
停止 Rsync 服务:
kill $(cat /var/run/rsyncd.pid)
rm -rf /var/run/rsyncd.pid
② 客户端配置(192.168.10.20)
下载资源并备份到本地:
rsync -avz backuper@192.168.10.18::wwwroot /opt/
配置免交互备份:
echo "123456" > /etc/server.pass
chmod 600 /etc/server.pass
crontab -e
30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass backuper@192.168.10.18::wwwroot /opt/
启计划任务:
systemctl restart crond
systemctl enable crond
6. Rsync + Inotify 实现触发式同步
Rsync 与 inotify 联合使用,可以实现文件实时监控和触发式备份。只要目录下的文件发生变化,便会立即启动 Rsync 增量备份。
- 修改 Rsync 源服务器配置:
vim /etc/rsyncd.conf
read only = no - 调整 inotify 内核参数:
vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
sysctl -p - 安装 inotify-tools:
tar zxvf inotify-tools-3.14.tar.gz -C /opt/
cd /opt/inotify-tools-3.14
./configure
make && make install
监控目录变化:
inotifywait -mrq -e modify,create,move,delete /var/www/html
14. 编写触发式同步脚本:
创建脚本 /opt/inotify.sh:
!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.10.18::wwwroot/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
if [ $(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done
赋予脚本执行权限:
chmod +x /opt/inotify.sh
chmod 777 /var/www/html/
Rsync 实现快速删除大量文件
使用 Rsync 的替换原理,可以快速删除大量文件。假设需要删除 /usr/local/nginx/proxy_temp 下的缓存文件,可以按如下步骤操作:
创建一个空文件夹:
mkdir /home/blank
使用 Rsync 清空目标目录:
rsync --delete-before -a -H -v --progress --stats /home/blank /usr/local/nginx/proxy_temp
选项说明:
--delete-before:在传输前进行删除操作。
-a:归档模式,递归传输并保留所有文件属性。
-H:保留硬连接。
-v:显示详细输出。
--progress:显示传输进度。
--stats:显示文件传输的统计信息。
通过这篇
before -a -H -v --progress --stats /home/blank /usr/local/nginx/proxy_temp
选项说明:
--delete-before:在传输前进行删除操作。-a:归档模式,递归传输并保留所有文件属性。-H:保留硬连接。-v:显示详细输出。--progress:显示传输进度。--stats:显示文件传输的统计信息。
————————————————
原文链接:https://blog.csdn.net/xw2441176267/article/details/142970214
浙公网安备 33010602011771号