首页 > 系统相关 >linux系统下rsync使用笔记

linux系统下rsync使用笔记

时间:2023-12-15 20:33:08浏览次数:32  
标签:rsync -- linux 笔记 ssh file rsyncd 服务器

rsync的功能

rsync能够基于网络(含局域网和互联网)快速地实现多台主机间的文件同步工作

rsync的特点

rsync有独立的文件内容差异算法,会在传送前对两个文件进行比较,只传送两者内容间的差异部分,因此速度更快

rsync的使用场景

1、本地代码更新到测试服务器,我们一般采用git方式,测试服务器部署到线上服务器可以采用rsync的方式(我使用过这种架构)

2、正式服务器上的一些数据或者日志备份到备份服务器,可以使用此工具,因为它是第一次全量传输,后面都是只传输差异部分数据,因此经济性和性能很好

rsync的推和拉

1、这里的推和拉都是相对来说的

2、我们确定源服务器和目标服务器2个角色,数量上可能是一对一,一对多,多对一,多对多,这些都是可能存在的情况

3、如果我是源服务器,给目标服务器发送数据,这叫推

4、如果我是目标服务器,从源服务器上获取数据,这叫拉

5、至于选哪种方式合适,要结合实际的场景需求,多方面考虑,易维护,性能高,数据安全等等方面综合考虑

rsync的认证方式

名称 是否需要密码 说明 命令示例
ssh认证

需要

1、只需数据同步的双方服务器都安装rsync服务即可,且不必启动服务

2、如果目标主机的ssh端口不是22,必须用-e选项指定协议类型和端口号,如果是22则无需使用-e参数

3、执行命令,每次都需要输入登录目标主机ssh的密码,不支持--password-file参数指定密码文件

1、对方ssh端口是22:rsync -avz /tmp/data [email protected]:/data

2、对方ssh端口非22:rsync -avz -e "ssh -p 端口号" /tmp/data [email protected]:/data/

deamon认证

需要

1、需要远程主机开启 rsyncd 服务

2、本地 rsyncd 服务可不必开启

3、远程主机需要配置rsyncd.conf,里面含有端口号,同步模块信息,账号密码校验等信息,下面会提供一个配置文件的格式出来,以供参考

4、rsync服务配置的虚拟账号密码

5、可以使用--password-file指定密码文件,免去每次都需要输入密码

1、目标主机开启rsyncd 服务:/usr/bin/rsync --daemon

2、本地使用命令:rsync -avz  --port 873  /tmp/data/* [email protected]::同步模块信息标识 --password-file=本机密码文件地址

rsync的常用参数

-a 归档模式, 表示以递归方式传输文件,并保持所有属性
-d 不递归目录文件,不传输子文件
-e 使用ssh协议进行传输,指定端口号
-r 递归处理所有子文件
-v 显示执行过程详细信息
-z 压缩文件
--delete 表示删除目标目录中源目录中没有的文件
--exclude 表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)
--include 参数用来指定必须同步的文件模式,往往与 --exclude 结合使用

rsync的deamon认证相关配置和使用

vim /etc/rsyncd.conf 配置文件

# Minimal configuration file for rsync daemon
# # See rsync(1) and rsyncd.conf(5) man pages for help
# # rsync统一配置文件
#
# # This line is required by the /etc/init.d/rsyncd script
 pid file = /var/run/rsyncd.pid
 #默认端口873,也可以改成别的端口
 port = 873
 address = 0.0.0.0
 uid = www
 gid = www
#
 use chroot = yes
 read only = no
#
# #permission
 incoming chmod = u+rwx,g+rx,o+rx
#
# #limit access to private LANs
# 可以指定IP地址的机器才能连接
 hosts allow=*
# #hosts deny=*
#
 max connections = 5
 motd file = /etc/rsyncd.motd
#
# #This will give you a separate log file
 log file = /var/log/rsync.log
#
# #This will log every file transferred - up to 85,000+ per user, per sync
 transfer logging = yes

 log format = %t %a %m %f %b
 syslog facility = local3
 timeout = 300
#
 [data1]
 path = /data/data1/
 list = yes
 ignore errors
 auth users = rsync
 secrets file = /etc/rsyncd.secrets
 comment = data1目录数据同步
 exclude = adminCache/ protected/runtime/ .git


[data2]
 path = /data/data2/
 list = yes
 ignore errors
 auth users = rsync
 secrets file = /etc/rsyncd.secrets
 comment = data2目录数据同步
 exclude = adminCache/ protected/runtime/ .git

vim /etc/rsyncd.secrets 账号密码,和配置文件里面的auth users值保持一致

rsync:xxxxxx

 说明:

1、这里的rsync是创建非登录用户且没有家目录的用户

useradd -s /sbin/nologin -M rsync

 2、修改用户密码文件属性,只有拥有者可以rwx,组和其他用户都没有rwx权限

chmod 600 /etc/rsyncd.secrets

 rsync连接服务端

rsync -avz --exclude=".git" --exclude="protected/runtime/" --exclude=".env" --port 873  本机数据目录 [email protected]::模块名称 --password-file=本机存放的服务器rsync用户密码

说明:

1、--port为服务端的端口号,默认873可以不用填写,如果是其他端口号,需要填写

2、模块名称是rsyncd.conf 配置文件里面的data1或者data2

3、本机存放的服务器rsync用户密码文件,必须设置权限为600

标签:rsync,--,linux,笔记,ssh,file,rsyncd,服务器
From: https://www.cnblogs.com/firstlady/p/17904138.html

相关文章

  • 《需求分析与系统设计》读书笔记1
    第一章讲了软件过程,从总体生描述了软件开发过程中的策略问题,介绍了支撑现代软件开发的过程和方法,认到了软件工程的本质是软件固有的复杂性,一致性,可变性和不可见性的产物。软件工程的偶然因素分为3类,即投入者,过程和建模语言和工具;投入者指那些与软件项目之间存在着利害关系的人,即客......
  • 机器学习ml.net例子笔记1
    详细内容参考: ml.net例子笔记1(yuque.com)  https://www.yuque.com/wushifengcn/kb/yb6xa6d01zr3tdit 如下是大纲1ml.net例子概要二元分类多类分类建议回归时间序列预测异常情况检测聚类分析排名计算机视觉跨领域......
  • unity广州站gpu resident drawer笔记
    unity广州站gpuresidentdrawer笔记什么是gpuresidentdrawer  将MeshRenderer数据转为BRGbatch(BatchRendererGroup)数据的机制。  它在unity6正式推出,并关联dots。  它优化的是CPU耗时,但也可能进而提高gpu的性能。因为需要提交给GPU的绘制调用更少。  通过gpure......
  • Linux下自动生成c++工程的UML类图
    在Qtcreator上面折腾了一两天,也没能生成出UML类图。下面是在Linux通过两个工具Graphviz+Doxygen生成类图的过程。安装软件:sudoaptinstallgraphvizdoxygen进入项目文件目录,首先生成配置文件:doxygen-gDoxygen.config然后编辑该配置文件,修改几个选项:EXTRACT_AL......
  • Linux系统与网络管理
    0.背景0.1UnixUnix诞生于1969年特点多任务多用户多平台保护模式可移植操作系统接口(POSIX)0.2Linux与Unix关系类Unix系统,完全按照Unix的思想设计的历史诞生于1991年,创始人Linus1.基础知识1.1Shell系统用户界面,是用户和内核交互的一种接口。解释命令给内核。......
  • 数论学习笔记
    数论分块求\(\sumf(i)g(\biggl\lfloor\dfrac{n}{i}\biggr\rfloor)\),并且\(f(i)\)的前缀和可以快速计算。发现\(\biggl\lfloor\dfrac{n}{i}\biggr\rfloor\)的取值只有根号种,暴力做就完事了。问题是已知\(l\),怎么求出最大的\(r\)满足\(\biggl\lfloor\dfrac{n}{l......
  • 秦疆的Java课程笔记:72 面向对象 instanceof和类型转换
    instanceof关键字,用于判断左边的实例对象是否是右边的类的实例。先创建4个类,父类Person,其子类Student和Teacher,测试类Application。在Application中测试instanceof语句://父类publicclassPerson{}//子类publicclassTeacherextendsPerson{}//子类publicclassStud......
  • 秦疆的Java课程笔记:71 面向对象 什么是多态
    多态即同一方法可以根据发送对象的不同而采用多种不同的行为方式。一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多。(指向父类或者有关系的类。)//父类=======================================publicclassPerson{}//子类=================================......
  • Linux下解压命令、压缩命令大全,详细教程
    Linux下解压命令、压缩命令大全,详细教程linux常用的解压和压缩命令如下:1、.tar解包:tarxvfFileName.tar打包:tarcvfFileName.tarDirName(注:tar是打包,不是压缩!)2、.gz解压1:gunzipFileName.gz解压2:gzip-dFileName.gz压缩:gzipFileName3、.tar.gz和.tgz解压:tarzxvfFil......
  • [最优化方法笔记] 梯度下降法
    1.梯度下降法无约束最优化问题一般可以概括为:\[\min_{x\in\mathbb{R}^n}f(x)\]通过不断迭代到达最优点\(x^*\),迭代过程为:\[x^{k+1}=x^k+\alpha_kd^k\]其中\(d^k\)为当前的搜索方向,\(\alpha_k\)为当前沿着搜索方向的步长。我们需要寻找可以不断使得\(f(x^{......