首页 > 其他分享 >Rsync数据复制

Rsync数据复制

时间:2023-05-21 23:25:32浏览次数:28  
标签:Rsync 数据 rsync etc 复制 root password backup

远程数据传输

pull拉取
语法
rsync  option               user@host:src                dest
命令        可选参数        用户名@主机ip:源路径            本地路径

push推送
语法
rsync        option        src            user@host:dest
命令        参数            本地路径        用户@主机ip:目的路径
1.把远程主机的/etc/hosts文件,拷贝到本地/tmp
[root@rsync01 ~]# rsync -av -e 'ssh -p 22' [email protected]:/etc/hosts /tmp/
The authenticity of host '10.0.0.40 (10.0.0.40)' can't be established.
ECDSA key fingerprint is SHA256:+MXyMm05tl3oyI4urvkWgWG4T30tuY/Irm9nYll9ero.
ECDSA key fingerprint is MD5:e4:f4:b4:81:bd:f3:f8:4d:61:a2:cd:2c:e7:e0:bd:c4.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': y
Please type 'yes' or 'no': yes
Warning: Permanently added '10.0.0.40' (ECDSA) to the list of known hosts.
[email protected]'s password: 
receiving incremental file list
hosts

sent 43 bytes  received 243 bytes  21.19 bytes/sec
total size is 158  speedup is 0.55

#配置免密登录后,即可不需要输入密码

--参数
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步,若是默认22,可以不写该参数
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
-v, --verbose 详细模式输出

守护进程传输模式

【拉取语法】

1.拉取模式语法,推荐使用,看清楚参数的符号!
rsync        参数    user@host::src (源地址)       dest(目标地址)

2.拉取第二种
rsync        参数        rsync://user@host:port/src    dest

【推送语法】

1.推送语法
rsync  参数  src    user@host::dest

2.推送第二种
rsync  参数  src    rsync://user@host:port/dest

想要通过守护传输模式进行复制传输数据,还得额外部署Rsync Daemon服务才行

守护进程传输模式实战

【准备三台linux服务器】

1.准备三台linux机器
10.0.0.30        Nginx web服务器
10.0.0.40        Rsync备份存储服务器
10.0.0.50        NFS存储服务器

【环境部署,Rsync备份服务器】

1.准备linux系统环境
[root@rsync-backup ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@rsync-backup ~]# uname -r    #查看内核版本
3.10.0-1160.el7.x86_64
[root@rsync-backup ~]# uname -m    #查看内核架构
x86_64
2.是否安装了rsync软件,若是未安装可以yum安装即可  
[root@rsync-backup ~]# rpm -qa rsync
rsync-3.1.2-12.el7_9.x86_64

【配置需求】

在Rsync备份机器上以rsync守护进程的方式部署Rsync服务,使得所有Rsync节点的客户端主机,可以把本地数据通过rsync命令备份数据到BACKUP服务器上。

【备份架构拓扑图】

以Rsync守护进程模式部署架构,并且以远程数据同步方式由客户端节点向服务器端推送数据

Rsync服务端部署

步骤举例Rsync步骤
1 确认是否有个房间可以当做仓库 确认Rsync程序是否安装
2 装修改造房间为仓库 修改Rsync配置文件信息
3 确认仓库的管理员 创建负责Rsync服务的虚拟用户
4 仓库中有柜子可以存储,管理员可以打开柜子 创建Rsync服务备份数据的目录,进行对虚拟用户授权
5 仓库要提升安全,上个锁 配置Rsync服务安全相关密钥,且对密钥文件授权600
6 确认仓库可以用了 启动Rsync服务,让其可以工作
7 确定仓库每天开门工作 设置Rsync服务开机启动

【第一步,修改rsyncd.conf配置文件】

Rsync守护进程配置在BACKUP服务器上

1.修改配置文件,默认是 /etc/rsyncd.conf
uid = rsync
gid = rsync
fake super = yes 
use chroot = no
max connections = 200
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
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = This is rsync backup!
path = /backup/

【第二步,配置数据备份的目录】

1.根据rsyncd.conf中定义的目录,创建目录、用户
[root@rsync-backup ~]# useradd -s /sbin/nologin -M rsync
[root@rsync-backup ~]# mkdir /backup
[root@rsync-backup ~]# chown -R rsync.rsync /backup/
2.配置用于Rsync复制的账户、密码、文件权限,在Rsync备份服务端创建
[root@rsync-backup ~]# echo "rsync_backup:123456" > /etc/rsync.password
[root@rsync-backup ~]# chmod 600 /etc/rsync.password 
##检查密码文件,权限
[root@rsync-backup ~]# ll /etc/rsync.password 
-rw-------. 1 root root 20 May 17 11:55 /etc/rsync.password
[root@rsync-backup ~]# cat /etc/rsync.password 
rsync_backup:123456
3.启动rsync服务,开机自启
[root@rsync-backup ~]# systemctl start rsyncd
[root@rsync-backup ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@rsync-backup ~]# systemctl status rsyncd
4.检查Rsync服务进程、端口
[root@rsync-backup ~]# netstat -tunlp|grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      1329/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      1329/rsync
[root@rsync-backup ~]# ps -ef |grep rsync|grep -v grep
root       1329      1  0 11:58 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
[root@rsync-backup ~]# ps -aux |grep rsync|grep -v grep
root       1329  0.0  0.1 114852  1140 ?        Ss   11:58   0:00 /usr/bin/rsync --daemon --no-detach

Rsync客户端(nfs01)配置

1.确认rsync命令是否有
2.创建和rsync服务端连接的账户密码文件,且授权
3.注意Rsync客户端要和服务端的配置区别开

配置过程

1.安装rsync
[root@nfs ~]# rpm -qa rsync
rsync-3.1.2-12.el7_9.x86_64
2.创建密码文件,和服务端相同
[root@nfs ~]# echo "123456" > /etc/rsync.password
3.授权文件
[root@nfs ~]# chmod 600 /etc/rsync.password 
4.验证文件密码、权限
[root@nfs ~]# cat /etc/rsync.password 
123456
[root@nfs ~]# ll /etc/rsync.password 
-rw-------. 1 root root 7 May 21 09:41 /etc/rsync.password
5.配置特殊变量RSYNC_PASSWORD,可以替代密码文件
[root@nfs ~]# export RSYNC_PASSWORD=123456    #临时生效
[root@nfs ~]# echo "export RSYNC_PASSWORD=123456" >> /etc/bashrc     #永久生效
6.验证密码变量
[root@nfs ~]# tail -1 /etc/bashrc
export RSYNC_PASSWORD=123456
[root@nfs ~]# echo $RSYNC_PASSWORD 
123456

至此Rsync守护进程方式,服务端、客户端都配置完毕

测试数据同步

拉取:服务端同步文件给客户端

报错一:failed to connect 连接失败,检查服务器防火墙是否关闭

rsync: failed to connect to 10.0.0.40 (10.0.0.40): No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(126) [Receiver=3.1.2]

报错二:权限不足,检查服务器selinux是否关闭,setenforce 0关闭

receiving incremental file list
rsync: failed to read xattr user.rsync.%stat for "." (in backup): Permission denied (13)
rsync: opendir "." (in backup) failed: Permission denied (13)

报错三:

[root@nfs ~]# rsync -avzP [email protected]::backup/ /opt/ --password-file=/etc/rsync.password 
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1656) [Receiver=3.1.2]

##检查/var/log/rsyncd.log日志,发现可能是连接了不知道的虚拟用户
2023/05/21 10:38:45 [1609] params.c:Parameter() - Ignoring badly formed line in config file: ignore errors
2023/05/21 10:38:45 [1609] name lookup failed for 10.0.0.50: Name or service not known
2023/05/21 10:38:45 [1609] connect from UNKNOWN (10.0.0.50)
2023/05/21 10:38:45 [1609] auth failed on module backup from UNKNOWN (10.0.0.50) for rsync-backup: no matching rule

 连接成功

1.同步到服务端Rsync指定的目录(/bakcup)下,拉取到客户端的/opt/目录
[root@nfs ~]# rsync -avzP [email protected]::backup /opt/ --password-file=/etc/rsync.password 
receiving incremental file list
./
hhhhhhhh.txt
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)

sent 46 bytes  received 156 bytes  404.00 bytes/sec
total size is 0  speedup is 0.00
2.也可以直接使用密码变量,进行同步
rsync -avzP [email protected]::backup /opt/ --password-file=/etc/rsync.password 
-a  保持文件原有属性
-v    显示传输细节情况
-z    对传输数据压缩传输
-P    显示文件传输的进度信息
/opt/  要拉取的本地目录,注意backup/ 表示拉取该目录下内容


[email protected]::backup
##验证rsync服务端参数 grep "auth user" /etc/rsyncd.conf 
auth users = rsync_backup    同步数据的虚拟认证用户
##backup是服务器配置文件中定义的模块名
@10.0.0.40::backup    要推送的目的地ip地址以及模块名称

--password-file=/etc/rsync.password   #指定密码文件

推送:客户端同步文件给服务端

1.从客户端/opt目录下同步文件到服务端rsync指定的目录/backup下
[root@nfs ~]# rsync -avzP /opt/ [email protected]::backup --password-file=/etc/rsync.password 
sending incremental file list
./
test_rsync.txt
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/4)

sent 172 bytes  received 38 bytes  420.00 bytes/sec
total size is 0  speedup is 0.00

 

标签:Rsync,数据,rsync,etc,复制,root,password,backup
From: https://www.cnblogs.com/junwured/p/17410796.html

相关文章

  • iOS应用程序之间数据共享
    iOS应用程序间共享数据我们知道由于iOS有安全沙盒机制,应用之间是不能直接访问,但是Apple友好的提供了四种访问机制它们分别是:1.粘贴板      UIPasteboard2.自定义URLScheme   3.AppGroups4.钥匙串以下,就详细的说说它们的原理和具体怎么使用。......
  • 数据结构—树(自学笔记)(郝斌)
    文章目录树的定义专业定义通俗的定义相关术语树的分类一般树二叉树二叉树的分类二叉树的性质对于第一条来说是显然的,i=1时就是根节点。i>1时,比如节点7,它的双亲就是•⌊......
  • java基于的springboot+vue4S店车辆管理系统,车辆销售管理系统,附源码+数据库+lw文档+PPT
    1、项目介绍首先介绍了4S店车辆管理的技术发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实......
  • 2.6 异质的数据结构
    结构C语言的struct声明创建一个数据类型,将可能不同类型的对象聚合到一个对象中。用名字来引用结构的各个组成部分。类似于数组的实现,结构的所有组成部分都存放在内存中一段连续的区域内,而指向结构的指针就是结构第一个字节的地址。编译器维护关于每个结构类型的信息,指示每个字段(......
  • Python跨进程共享数据/对象
    转载:(14条消息)Python跨进程共享数据/对象_python多进程共享对象_alpha.5的博客-CSDN博客1.跨进程共享方式在multiprocess库中,跨进程对象共享有三种方式:(1)第一种仅适用于原生机器类型,即python.ctypes当中的类型,这种在mp库的文档当中称为sharedmemory方式,即通过共享内存共享对......
  • H2数据库的基本用法
    个人学习用途博客部分内容摘抄自网络......
  • 相关数据进行训练(以心脏器官为例)
    数据训练1、下载相关数据(Task02_Heart)得到这样结构的数据:与教程中的Lung数据相符:2、使用命令进行数据训练pythontrain.py--config**configs/nnunet/msd_lung/nnunet_3d_fullres_msd_lung_fold0.yml**这里放置本机的文件路径--log_iters20--precisionfp16--nnunet-......
  • 《数据结构与算法》之数据的顺存储
    导言:数据结构中,对一些数据序列我们使用的是顺序的方式存储,比较常见的有数组,链表,这些都是最基本的顺序存储的结构,我们会用几个简单的例子来描述顺序存储的方式和演变我们知道顺序存储中有链表,有链表我们就必须知道指针,所以我们先复习一下指针,再来看顺序存储一.指针在C语言中,我......
  • 行人检测(人体检测)1:人体检测数据集(含下载链接)3. COCO数据集
    行人检测(人体检测)1:人体检测数据集(含下载链接)目录行人检测(人体检测)1:人体检测数据集(含下载链接)1.前言2.VOC数据集3.COCO数据集4.MPII数据集5.人体检测(包含人体+人脸框)数据集下载6.人体检测(行人检测)效果(Python版本)7.人体检测(行人检测)效果(Android版本)1.前言这是项目《行......
  • Android数据储存之File文件储存数据
     一.存储在内部还是外部?AndroidManifest.xml中manifest标签下有一个属性android:installLocation,用于指定应用程序安装在什么地方,该属性有三个可选值:auto:程序可能被安装在外部存储器上,例如SD卡;但是默认会被安装到手机内存中。当手机内存为空时,程序将被安装到外部存储器上;当程序安......