0

0

Rsync文件同步学习

WBOY

WBOY

发布时间:2024-05-02 21:04:15

|

1305人浏览过

|

来源于Linux就该这么学

转载

首先了解了下rsync同步的大致原理:rsync 同步使用所谓的“rsync 演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份

传送,因此传输的速度相当快。Rsync服务端会打开一个873的服务通道(port),等待客户端 Rsync 连接。连接时,Rsync 服务端会检查口令(passwd)是否相符,若通过口令查核,

则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间的差异部份。

接下来我们就来初步搭建,先完成任务需求。

Rsync服务端(192.168.177.130)

安装rsync工具

mallcloud商城
mallcloud商城

mallcloud商城基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离vue的企业级微服务敏捷开发系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提

下载
yum -y install rsync

(默认会在etc目录下生成一个rsync的配置文件)

编辑配置文件rsyncd.conf (配置文件里面是不能添加注释,不然会报错)

uid = root                     
gid = root
use chroot = no
max connections = 4
#pid file = /var/run/rsyncd.pid      
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log         
exclude = lost+found/
transfer logging = yes
timeout = 600
ignore nonreadable = yes           
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2         
[test]                                  
path = /home/rsynctest
ignore errors = yes
read only = yes
write only = no
hosts allow = 192.168.177.131    
hosts deny = *
list = false
uid = root 
gid = root
auth users = root
secrets file = /etc/rsyncd.passwd

配置详解

uid = root                 #设置运行rsync 进程的用户
gid = root
use chroot = no            #使用默认根目录
max connections = 4        #最大连接数
#pid file = /var/run/rsyncd.pid        #CentOS7中yum安装 不需指定pid file 否则报错
lock file = /var/run/rsyncd.lock       #指定支持 max connections 参数的锁文件
log file = /var/log/rsyncd.log         #此文件定义完成后 系统会自动创建
exclude = lost+found/
transfer logging = yes             #使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中
timeout = 600   #通过该选项可以覆盖客户指定的IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户。超时单位为秒钟,0表示没有超时定义,这也是默认值。对于匿名rsync服务器来说,一个理想的数字是600。
ignore nonreadable = yes           #同步时跳过没有权限的目录
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2          #传输时不压缩的文件
[test]                          #此名字即客户端使用rsync来同步的路径
path = /home/rsynctest                 #实际需要同步的路径
ignore errors = yes     #指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IP错误,一般来说rsync在出现IO错误时将将跳过--delete操作,以防止因为暂时的资源不足或其它IO错误导致的严重问题
read only = yes         #表示可以pull
write only = no         #表示不可以push
hosts allow = 192.168.177.131        #客户端同步的地址
hosts deny = *   #指定不允许连接rsync服务器的机器,可以使用hosts allow的定义方式来进行定义。默认是没有hosts deny定义。
list = false     #该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。默认值是true。
uid = root       #获取文件的身份
gid = root
auth users = root  #客户端获取文件的身份 此用户并不是本机中确实存在的用户
secrets file = /etc/rsyncd.passwd   #用来认证客户端的秘钥文件 格式 USERNAME:PASSWD 此文件权限一定需要改为600,且属主必须与运行rsync的用户一致。(需自行创建)

创建对应密码文件

vim /etc/rsyncd.passwd
格式如下:root:123456(前用户名后密码)
修改文件权限:chmon 600 /etc/rsyncd.passwd
启动rsync服务端:sudo rsync --daemon(客户端不用启动)
Rsync客户端(192.168.177.131)

安装rsync工具

  yum -y install rsync (默认会在etc目录下生成一个rsync的配置文件)

配置认证密码文件

  echo passwd(只需要密码就行) >> /etc/rsyncd.passwd

修改权限

  chmon 600 /etc/rsyncd.passwd

测试文件同步情况:

  rsync -avz --progress --password-file=/etc/rsyncd.passwd root@192.168.177.130::rsynctest /tmp/rsynctest/

Rsync文件同步学习

测试完成!

命令参数详解:

  -v, –verbose 详细模式输出

  -z, –compress 对备份的文件在传输时进行压缩处理

  -r, –recursive 对子目录以递归模式处理

  -t, –times 保持文件时间信息

  -o, –owner 保持文件属主信息

  -p, –perms 保持文件权限

  -g, –group 保持文件属组信息

  –-progress 显示传输进度

  --delete 删除客户端多余文件

总结的还不到位,希望有问题可以指出!

Just Do It

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

403

2023.08.14

云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

20

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

29

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

149

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

120

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

41

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

14

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.5万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号