rsync同步

本文介绍了如何使用rsync进行快速增量备份,包括归档模式、压缩、硬链接等选项的使用,并展示了rsync在本地及远程同步的实操步骤。同时,配置了rsync守护进程服务,并通过inotify工具实现文件变化自动触发同步,确保数据的实时一致性。最后,调整了客户端的inotify参数以提高监控效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rsync概述

快速增量备份的工具
remote sync,支持远程同步
支持本地复制,或者与其他SSH,rsync主机同步

常用选项

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

实操

rsync本地复制

[root@rsync ~]# mkdir /www
[root@rsync ~]# cd /www
[root@rsync www]# touch test test1
[root@rsync www]# mkdir /hhh
[root@rsync www]# rsync -avz /www /hhh				#将/www带目录复制到/hhh下
sending incremental file list
www/
www/test
www/test1

sent 160 bytes  received 58 bytes  436.00 bytes/sec
total size is 0  speedup is 0.00
[root@rsync www]# ls /hhh							#查看结果显示联通目录一起复制
www
[root@rsync www]# rsync -avz /www/ /hhh				#原目录后加上/表示仅复制目录下的文件
sending incremental file list
./
test
test1

sent 148 bytes  received 57 bytes  410.00 bytes/sec		
total size is 0  speedup is 0.00
[root@rsync www]# ls /hhh							#查看结果
test  test1  www

配置源服务器


[root@rsync www]# yum install -y rsync					
[root@rsync www]# vim /etc/rsyncd.conf 					
##删除原本内容,添加以下内容
uid = root											
默认是nobody
gid = root										
use chroot = yes										                                              
address = 192.168.118.100								
port 873                     	                                           
log file = /var/log/rsyncd.log							# 日志文件位置                  
pid file = /var/run/rsyncd.pid	                		# 存放进程id的文件位置
hosts allow = 192.168.118.0/24							
[wwwroot]   					                                                         
path = /var/www/html     		                  		             
comment = Document Root of www.ljm.com	
read only = yes             	 						                              
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z  		
auth users = backuper                                   
secrets file = /etc/users.db 							
[root@rsync ~]# vim /etc/user.db						
whd:abc123
[root@rsync ~]# chmod 600 /etc/user.db 				
[root@rsync ~]# mkdir -p /var/www/html				
[root@rsync ~]# chmod +r /var/www/html/
[root@rsync ~]# ls -ld /var/www/html/
drwxr-xr-x. 2 root root 6 八月 11 05:27 /var/www/html/
[root@rsync ~]# rsync --daemon						#开启服务
[root@rsync ~]# netstat -antp | grep rsync
tcp        0      0 192.168.118.100:873     0.0.0.0:*               LISTEN      88951/rsync  

查看同步
在这里插入图片描述

客户端交互同步
在这里插入图片描述

inotify安装

修改rsync配置文件
在这里插入图片描述

重启服务
在这里插入图片描述
修改客户端参数

[root@client aaa]# vim /etc/sysctl.conf 				
fs.inotify.max_queued_events = 32768					
fs.inotify.max_user_instances = 1024					
fs.inotify.max_user_watches = 1048576					
8192
[root@client aaa]# sysctl -p
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576

安装inotify-tools
在这里插入图片描述

触发同步脚本
在这里插入图片描述

查看

[root@rsync html]# ls
chx.txt
`rsync` 是一种快速、 versatile 的文件复制工具,常用于 Linux 系统间的数据同步。当提到“**rsync 同步根目录**”时,意味着我们需要将本地或远程服务器的 `/` (即根目录)下的所有内容进行同步。 以下是关于 `rsync` 同步根目录的基本介绍及操作步骤: --- ### **关键点** 1. 根目录 (`/`) 包含了整个系统的文件结构,因此需要特别小心处理。 2. 使用 `-a` 参数可以保持权限、时间戳等属性一致(归档模式),并递归地复制目录。 3. 推荐排除不必要的系统特定文件(如 `/dev`, `/proc`, `/sys`, `/tmp`, `/run` 等),因为这些目录通常不需要备份,并且可能是动态生成的内容。 --- ### 示例命令 假设你要从源服务器同步到目标服务器的根目录,可以用以下命令: ```bash rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found"} root@source_server:/ /destination/path/ ``` #### 命令解释: - `-a`: 归档模式,保留原始文件的所有属性。 - `-v`: 显示详细信息。 - `-z`: 对传输数据进行压缩,提高效率。 - `--exclude={...}`: 指定要忽略的路径列表,避免同步无意义的内容。 - `/dev/`: 设备文件。 - `/proc/`: 虚拟文件系统,存储运行进程的信息。 - `/sys/`: 内核设备树虚拟文件系统。 - `/tmp/`: 临时文件夹。 - `/run/`: 运行时变量和状态。 - `/mnt/`: 默认挂载点。 - `/lost+found`: 文件系统修复后的残余文件存放处。 --- ### 注意事项 1. 如果直接同步至当前主机的根目录,请确保有足够的磁盘空间以及正确的权限管理。 2. 避免覆盖正在使用的系统文件(例如启动相关的配置文件),这可能导致系统无法正常引导。 3. 测试阶段建议先在非生产环境中验证命令效果再应用于实际场景。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值