rsync概念-搭建-故障处理
1.概念
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具
2.为什么要使用rsync?
cp 本地备份
scp 远程备份
rsync 远程备份 增量备份
优缺点
cp , scp , 和 rsync 都是 Linux 系统中用来复制或移动文件和目录的常用命令,它们各自有不同的应用场景和优缺点:
cp (copy)
优点:
- 本地操作高效: cp 是本地文件系统的复制命令,执行速度快,尤其在处理大量本地文件时效率高。
- 功能全面:支持递归复制整个目录结构,可以保留原有文件属性,并且可以通过 -p 参数保留文件权限、时间戳等元数据。
缺点:
- 非网络操作: cp 无法直接用于远程文件复制,只能在本地文件系统间操作。
scp (secure copy)
优点:
- 安全性: scp 是基于 SSH 协议的,所以在网络间复制文件时能够保证数据的安全性,加密传输。
- 简单易用:只需指定源文件/目录和目标位置,即可进行远程机器间的文件复制。
缺点:
- 全量复制:每次执行都会完整复制文件,无论文件是否有变化,因此对于大文件或已存在的未更改文件来说,可能效率较低。
- 资源占用:在网络传输过程中,特别是处理大量小文件时,可能会占用较多的网络带宽和计算资源。
rsync
优点:
- 增量复制: rsync 支持增量复制,仅传输文件的不同部分,极大地提高了复制效率,特别适合定期备份和同步任务。
- 双向同步:既可以进行单向复制,也可以进行双向同步,并且可以检查文件的一致性。
- 节省资源:通过校验机制避免无意义的传输,减少带宽消耗;同时,可通过 -z 参数启用压缩传输进一步提升效率。
- 智能删除:在某些模式下,rsync可以删除目标目录中不再存在于源目录的文件,实现真正的同步效果。
缺点:
- 首次同步较慢:由于rsync会先比较文件内容再传输,所以对于初次同步大量文件的情况,其比较阶段可能会相对较慢。
- CPU 使用率:特别是在处理小文件时,因为需要计算文件的校验值来判断差异,可能导致CPU使用率较高。
- 复杂度:相比 cp 和 scp , rsync 提供更多的选项,使用起来更复杂,需要熟悉更多参数才能发挥其全部优势。
总结:
- 当只需要在本地快速复制文件时, cp 最合适。
- 如果需要在两台远程主机间安全地传输文件,即使效率稍低, scp 仍然是首选。
- 对于大型文件、定期备份、增量同步以及希望最大程度节省资源的场景, rsync 能提供最优解决方案。
3.rsync服务部署安装(守护进程)
linux系统安装部署服务流程:
a 下载安装软件 yum
b 编写配置文件
c 搭建服务环境 备份的目录/目录权限
d 启动服务程序 开机自动启动
e 测试服务功能
服务端部署(备份服务器):rsync
第一步:下载安装软件
[root@localhost ~]
第二步:编写配置文件
[root@localhost ~]
uid=rsync
gid=rsync
port=873
fake super = yes
use chroot = no
max connections= 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 10.0.0.0/24
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment =" welcome to RSYNC backup"
path = /backup
第三步:创建rsync服务虚拟用户
[root@localhost ~]
第四步:创建rsync服务的认证密码文件并修改权限
[root@localhost ~]
[root@localhost ~]
第五步:创建备份文件所需的目录并修改用户文件的属主和属组
[root@localhost ~]
[root@localhost ~]
第六步:启动备份rsync服务
[root@localhost ~]
[root@localhost ~]
客户端部署(网站服务器):rsync 配置文件不用改默认即可
第一步:下载安装软件
[root@localhost ~]
第二步:创建一个密码文件
[root@localhost ~]
[root@localhost ~]
第三步:测试用免交互方式同步文件
[root@localhost ~]
4.全量备份
rsync -avz /oldboy/* rsync_backup@10.0.0.25::backup --password-file=/etc/rsync.password
直接对拷目录,实现全量备份
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!