27-rsync服务详解

27-rsycn服务详解

rsync基本概述
rsync(remote synchronization)是一款开源、快速、多功能、可实现全量及增量的本地或者远程数据同步备份的优秀工具。rsync软件适用于Unix/linux/windows等多种操作系统平台。
rsync功能
1.本地和远程两台主机之间的数据快速复制、远程全量或增量备份(类似于scp)
2.支持配置守护进程方式实现异机数据复制(备份)
3.支持本地主机的不同分区或者目录之间全量及增量复制数据(类似cp,比cp可以实现增量拷贝)
rsync命令功能
1.实现本地数据同步复制(本地工作模式,相当于cp功能)
2.实现远程数据同步复制(远程shell工作模式,相当于scp命令)
3.实现数据信息删除功能(本地工作模式,相当于rm命令)
4.实现数据信息查看功能(本地或远程工作模式,相当于ls命令)
rsync软件特性
1.支持拷贝普通文件与特殊文件,如链接文件、设备文件等。
2.支持排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
3.可以做到保持原文件或目录的权限、时间、软硬链接、属主、数组等所有属性均不变
4.可实现增量复制,即只复制发生变化的数据,因此数据传输效率很高
5.可以使用rcp、rsh、ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
6.可以通过socket(进程方式)传输文件和数据(服务端和客户端)
7.支持匿名或认证(无须系统用户)进程模式传输,安全的进行数据备份及镜像
rsync传输模式
本地模式(了解)
Local: rsync [OPTION...] SRC... [DEST]
本地: 命令 选项参数 源文件 目标位置
[root@backup ~]# rsync -avz a.txt /opt/
sending incremental file list
a.txt

sent 82 bytes  received 35 bytes  234.00 bytes/sec
total size is 0  speedup is 0.00
[root@backup ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Apr  8 21:03 a.txt
#再次拷贝为增量拷贝
[root@backup ~]# rsync -avz a.txt /opt/
sending incremental file list
a.txt

sent 82 bytes  received 35 bytes  234.00 bytes/sec
total size is 0  speedup is 0.00
[root@backup ~]# ll /opt/
total 0
-rw-r--r-- 1 root root 0 Apr  8 21:03 a.txt
[root@backup ~]# 
[root@backup ~]# 
[root@backup ~]# rsync -avz a.txt /opt/
sending incremental file list

sent 42 bytes  received 12 bytes  108.00 bytes/sec
total size is 0  speedup is 0.00

#拷贝oldboy目录下的所有内容到/opt目录下需要在后面加/
root@backup ~]# rsync -avz oldboy/ /opt/
sending incremental file list
./
a.txt
b.txt

sent 171 bytes  received 57 bytes  456.00 bytes/sec
total size is 4  speedup is 0.02
[root@backup ~]# ll /opt/
total 4
-rw-r--r-- 1 root root 4 Apr  8 21:10 a.txt
-rw-r--r-- 1 root root 0 Apr  8 21:09 b.txt

#拷贝oldboy目录到/opt
[root@backup ~]# rsync -avz oldboy /opt/
sending incremental file list
oldboy/
oldboy/a.txt
oldboy/b.txt

sent 187 bytes  received 58 bytes  490.00 bytes/sec
total size is 4  speedup is 0.02
[root@backup ~]# ll /opt/
total 0
drwxr-xr-x 2 root root 32 Apr  8 21:09 oldboy

远程模式
# Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
拉取:
rsync: 命令
-avz:  参数
USER@: 用户
HOST:  主机IP地址 域名 主机名称
:SRC   源文件
DEST:  目标位置  下载到本地的哪个目录

案例:10.0.0.41拉取10.0.0.7上的/root/7.txt 到本地当前目录
[root@backup ~]# rsync -avz root@10.0.0.7:/root/7.txt ./       #执行过程中需要10.0.0.7root用户的密码

# Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
push: 推送 上传
rsync:  命令
-avz:   参数
SRC:	源文件/文件位置/目录
USER@:	用户名
HOST:	远程IP地址/主机名称/域名
DEST:	目标位置

案例:10.0.0.41将oldboy目录推送到10.0.0.7的/opt目录下
[root@backup ~]# rsync -avz oldboy root@10.0.0.7:/opt
[root@backup ~]# rsync -avz oldboy root@172.16.1.7:/opt
root@172.16.1.7's password: 		#要172.16.1.7的密码
sending incremental file list

#注意:如果不加用户,默认以当前系统登录用户身份进行远程连接,但是要对方的此用户名和密码
如下:默认使用root进行远程连接41,需要提供41的root密码
[root@web01 ~]#rsync -avz 10.0.0.41:oldboy ./
小结
下载: 远程服务器在前面
rsync -avz root@10.0.0.7:/root/7.txt ./
上传: 远程服务器在后面 文件在前面
rsync -avz oldboy root@10.0.0.7:/opt


IP地址可以是域名:前提是得有域名和对应的IP地址。配置写在/etc/hosts
[root@web01 opt]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.7 web01

[root@backup ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.7 web01

[root@backup ~]# rsync -avz root@web01:/root/7.txt ./

守护进程模式(企业常用)

**rsync -avz 7.txt rsync_backup@172.16.1.41::backup **

  • 身份验证:rsync_backup
  • 需要将7.txt写入到磁盘中/backup目录中
  • 创建目录的权限:drwxr-xr-x root root /backup
  • rsync用户对于/backup 目录是other 目前other只有读的权限。所以,需要将/backup目录的属主和属组变为rsync。这样做rsync用户对于/backup目录就变成了属主那么就有了读写权限。才能达到7.txt文件写入到磁盘中的/backup目录。
1.安装服务
yum -y install rsync
2.配置服务(去掉#注释)
[root@backup ~]#cat /etc/rsyncd.conf
uid = rsync					#运行进程的用户
gid = rsync					#运行进程的用户组
port = 873					#监听端口
fake super = yes			#无需让rsync以root的身份运行,允许接收文件的完整属性
use chroot = no				#禁锢推送的数据至某个目录,不允许跳出该目录
max connections = 200		#最大连接数
timeout = 600				#超时时间
ignore errors				#忽略错误信息
read only = false			#对备份数据可读写
list = false				#不允许查看模块信息
auth users = rsync_backup	#定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd	#定义rsync服务用户连接认证密码文件路径
log file = /var/log/rsyncd.log		#日志路径
#####################################
[backup]					#定义模块信息
comment = welcome to oldboyedu backup!	#模块注释信息
path = /backup				#定义接收备份数据目录

3.根据配置文件创建必要的数据
1)创建rsync虚拟用户
[root@backup ~]# useradd -M -s /sbin/nologin rsync
[root@backup ~]# id rsync 
uid=1000(rsync) gid=1000(rsync) groups=1000(rsync)
2)创建密码文件
vim /etc/rsync.passwd
[root@backup ~]# cat /etc/rsync.passwd 
rsync_backup:123456

3.修改密码文件权限为600
[root@backup ~]# chmod 600 /etc/rsync.passwd 
[root@backup ~]# ll /etc/rsync.passwd 
-rw------- 1 root root 20 Apr  8 21:58 /etc/rsync.passwd

4.创建/backup目录,更改属主和属组权限
mkdir -p /backup
chown -R rsync.rsync /backup
5.启动rsync服务
systemctl start rsyncd		#启动rsync服务
systemctl enable rsyncd		#设置开机自启动

6.检查rsync服务是否开启,端口873
[root@backup /]# netstat -tunlp |grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      784/rsync           
tcp6       0      0 :::873                  :::*                    LISTEN      784/rsync

[root@backup /]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2024-04-09 17:31:02 CST; 3h 41min ago
 Main PID: 784 (rsync)
   CGroup: /system.slice/rsyncd.service
           └─784 /usr/bin/rsync --daemon --no-detach
      
7.测试
客户端推送至服务器
10.0.0.7 客户端
10.0.0.41 服务端
1.将10.0.0.7 家目录下的oldboy目录推送到10.0.0.41服务端的backup模块

Access via rsync daemon:
         Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
               
         Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
               
[root@web01 ~]#rsync -avz oldboy rsync_backup@10.0.0.41::backup
Password: 
sending incremental file list
oldboy/
oldboy/1.txt
oldboy/7.txt
在服务端检查:
[root@backup /]# cd /backup/
[root@backup backup]# ll
total 0
drwxr-xr-x 2 rsync rsync 32 Apr  9 21:24 oldboy
[root@backup backup]# ll oldboy/
total 0
-rw-r--r-- 1 rsync rsync 0 Apr  9 21:24 1.txt
-rw-r--r-- 1 rsync rsync 0 Apr  8 21:45 7.txt

2.将远端服务器/backup目录下的ba.txt文件下载到当前目录
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
[root@web01 ~]#rsync -avz rsync_backup@10.0.0.41::backup/ba.txt ./
Password: 
receiving incremental file list
ba.txt

sent 43 bytes  received 101 bytes  41.14 bytes/sec
total size is 4  speedup is 0.03

在10.0.0.7服务器检查:
[root@web01 ~]#ll
total 4
-rw-r--r-- 1 root root  4 Apr  9 21:32 ba.txt
drwxr-xr-x 2 root root 32 Apr  9 21:24 oldboy
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

atomLg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值