🚩本文介绍
在本文中,我们不仅会介绍Rsync的基本概念和特点,还会详细解析Rsync命令的各个参数和选项,让读者能够灵活运用这些命令完成各种数据同步任务。无论您是数据管理员、系统工程师还是IT爱好者,只要您对Rsync数据同步感兴趣,本文都将为您提供宝贵的参考和借鉴。通过学习和实践本文的内容,您将能够轻松驾驭Rsync,实现高效、稳定的数据同步,为您的工作和生活带来便利。
🏆荣誉认证:51CTO博客专家博主、2023年度博主Top3、TOP红人、明日之星;CSDN开发者社区运维领域实力新星、2023年大学生博主学习挑战赛Top2;阿里云开发者社区专家博主、技术博主、星级博主、云计算方向ACP证书获得者;
💻本文由微笑的段嘉许原创!
🎉欢迎关注🔎点赞👍收藏⭐留言📝
📆首发时间:🌴2024年4月23日🌴
✉️坚持和努力一定能换来诗与远方!
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
不要偷走我小火车哦~ ~ ~
文章目录
- 🚩本文介绍
- Rsync复制原理
- Rsync功能
- 工作模式
- 本地数据传输模式
- **作为本地复制命令应用**
- 作为本地删除数据命令应用
- 作为本地查询数据命令
- 远程数据传输模式
- 守护进程传输模式
- 客户端命令参数选项
Rsync复制原理
在备份复制数据时,Rsync通过独特的quick
、check
算法,仅复制大小或者最后修改时间发生变化的文件或目录当然也可以实现只复制一个文件里有变化的部分内容,所以可以实现快速地备份复制数据,即采用增量复制方法对数据信息进行复制,与传统cp、scp复制工具地全量复制截然不同,增量复制数据在效率上远远高于全量复制。
Rsync功能
- 本地数据同步复制(本地工作模式,相当于
cp
命令) - 远程数据同步复制(远程Shell工作模式,相当于
scp
命令) - 数据信息删除功能(本地工作模式,相当于
rm
命令) - 数据信息查看功能(本地或远程工作模式,相当于
ls
命令)
工作模式
本地(Local)数据传输模式
Rsync地本地数据传输模式,很类似于CP
本地复制命令,可以实现文件、目录的移动备份等功能,所不同的是Rsync有增量复制的功能。
远程(Shell)数据传输模式
远程Shell数据传输模式一般是借助通道(SSH
)在两台服务器之间进行复制数据,这两台服务器之间是对等的,没有客户端与服务端之分,整个过程类似于SCP
远程复制命令,所不同的是Rsync
有增量复制的功能,但缺少SCP的加密复制功能。
可以使用rcp
、rsh
、SSH
等方式来配合进行隧道加密传输文件。
守护进程(Daemon)传输模式
守护进程传输模式是在客户端与服务端之间进行数据复制的,通常需要服务端部署守护进程服务,然后在客户端执行命令,实现数据的拉取和推送复制。
本地数据传输模式
语法:
作为本地复制命令应用
复制本地文件hosts到tmp目录
[root@rsync ~]# rsync /etc/hosts /tmp###
etc/hosts是需要复制的文件路径
tmp是保存文件的路径
本地目录的复制本地html目录到temp
[root@rsync ~]# rsync -r /html /temp###
-r表示对子目录以递归模式传输,即目录下的所有目录都同样传输
作为本地删除数据命令应用
清空目tmp目录内容
[root@rsync ~]# rsync -r --delete /opt/null/ /tmp###
--delete表示对tmp目录进行清除清空
清空file.txt文件内容
[root@rsync ~]# rsync -r --delete /tmp/null.txt file.txt###
null.txt是一个空文件
使用null.txt空文件清空目标文件的内容
作为本地查询数据命令
查询hosts文件信息
[root@rsync ~]# rsync /etc/hosts
查询目录信息
[root@rsync ~]# rsync /etc
远程数据传输模式
语法:
利用拉取模式从远端服务器把/etc/hosts复制到本地/tmp目录
[root@rsync ~]# rsync -av -e 'ssh -p 22' root@192.168.100.20:/etc/hosts /tmp###
如果ssh端口是默认的22,命令中的-e 'ssh -p 22'可以省略
利用推送模式从本地服务器把/etc/hosts复制到远端主机的/tmp目录
[root@rsync ~]# rsync -av /etc/hosts root@192.168.100.20:/tmp###
采用远程Shell数据传输模式,每次都需要输入远程主机密码,无法实现免密交互
可以配合SSH key免密码登录来完成数据免交互同步
守护进程传输模式
语法:
从客户端同步/etc目录到Rsync服务器端指定的目录
方法一:
[root@rsync ~]# rsync -avzp /etc rsync_backup@192.168.100.10::backup --password-file=/etc/rsync.password###
/etc:表示要推送的本地文件目录
rsync_backup:表示同步数据的虚拟认证用户
@192.168.100.10::backup:表示要推送的目的地,IP地址及模块名称
双冒号后面的backup是/etc/rsyncd.conf配置文件中的模块名,而非目录名
password-file:表示客户端本地密码文件
方法二:
[root@rsync ~]# export RSYNC_PASSWORD=oldboy
[root@rsync ~]# rsync -avzp /etc rsync_backup@192.168.100.10::backup###
export……表示用于设置环境变量 RSYNC_PASSWORD 的值为 oldboy,以便在需要身份验证的rsync操作时不必人工输入密码(注意是临时的)
从服务器端指定的目录下所有拉取文件到本地客户端/opt目录
[root@rsync ~]# rsync -avz rsync_backup@192.168.100.10::backup /opt/ --password-file=/etc/rsync.password
从服务器端拉取指定模块下的指定目录或文件
[root@rsync ~]# rsync -vzrtopg rsync_backup@192.168.100.10::backup/etc/hosts /opt \ --password-file=/etc/rsync.password
客户端命令参数选项
-v:
详细模式输出,传输时的进度等信息
-z:
传输时进行压缩以提高传输效率
-a:
归档模式,表示以递归方式传输文件,并保持所有文件属性
-r:
对于目录以递归模式传输,及目录下的所有目录都同样传输
-t:
保持文件时间信息
-o:
保持文件属性主信息
-p:
保持文件权限
-g:
保持文件属性组信息
-p:
显示同步的过程及传输时的进度等信息
-D:
保存设备文件信息
-l:
保留软连接
-e:
使用的信道协议,指定替代rsh的Shell程序。例如:SSH
--exclude-from=file:
文件名所在的目录文件,即可实现排除多个文件(和tar参数一样)
--exclude=PATTERN:
指定排除不需要传输的文件信息(和tar参数一样)
--bwlimit=RATE:
限速功能但是KB/S
--delete:
让目标目录SRC和源目录数据DST一致,即无差异同步数据
连接
-e:
使用的信道协议,指定替代rsh的Shell程序。例如:SSH
--exclude-from=file:
文件名所在的目录文件,即可实现排除多个文件(和tar参数一样)
--exclude=PATTERN:
指定排除不需要传输的文件信息(和tar参数一样)
--bwlimit=RATE:
限速功能但是KB/S
--delete:
让目标目录SRC和源目录数据DST一致,即无差异同步数据
下期预告:守护进程传输模式实践,搭建Rsync服务,实现客户端与服务端之间拉取和推送复制