目录
模式2:Access via remote shell(远程shell使用)
3.守护进程侍输方式:rsync审身非常重要的功能(不使用系统用户,更加安全)
rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
rsync的官方站点:http://rsync.samba.org/ ,由Wayne Davison.进行维护,作为一种最常用的文件备份工具,rsync往往是Linux和UNIX系统默认安装的基本组件之一。
rsync是一款快速增量备份工具,支持:
(1)本地复制;
(2)与其他SSH同步;
(3)与rsync主机同步。在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责相应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置有读取权限。如图:
一、常见备份方式
完全备份:对所有数据做一次全备份
增量备份:只备份上一次备份之后变化的数据
差异备份:备份上一次完全备份后变化的数据
常见备份组合:
完全+增量:1次完全+多次增量
完全+差异:1次完全+1次差异
二、数据同步的方式
推:push,上传(upload)
将客户端的数据上传到rsync服务端
拉:pull,下载(download)
将rsync服务端的数据下载到客户端
推拉都是由客户端发起的
三、常用命令
参数选项:
-a #归档模式传输,等于-tropgD1
-v #显示详细模式输出,打印速率,文件数量等
-z #传输时进行压缩以提高效率
-r #递归传输目录及子目录,即目录下得所有目录都同样传输
-t #保持文件时间信息
-o #保持文件属主信息
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接P
-P #显示同步的过程及传输时的进度等信息
-D #保持设备文件信息
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代 rsh 的 shell 程序
–exclude=filename #指定排除不需要传输的文件
–exclude-from=file #文件名所在的目录文件
–bwlimit=100 #限速传输
–partial #断点续传
— delete #让目标目录和源目录数据保持一致
四、传输模式
模式1:local(本地使用)
格式:rsync [OPTION.….] SRC…[DEST]
Local: rsync [OPTION…]SRC…[DEST] #本地
rsync –备份命令(类似cp)
[options] –选项
SRC… –本地源文件
[DEST] –本地目标文件
rsync -avz /etc/passwd /tmp/
#命令 选项 源文件 目标
模式2:Access via remote shell(远程shell使用)
1.使用rsync命令下载172.16.1.41主机上/root目录下的oldboyedu.com文件,下载至本地的当前目录
Pull: rsync [OPTION…] [USER@]HOST:SRC… [DEST]
Pull #拉取,下载
rsync #备份命令
[options] #选项
[USER@] #目标主机的系统用户
HOST #目主机IP地址或域名
SRC… #目标主机源文件
[DEST] #下载至本地哪个位置
rsync -avz root@172.16.1.41:/root/oldboyedu.com ./
rsync -avz root@172.16.1.41:/root//backup #拉取远程目录下的所有文件
rsync -avz root@172.16.1.41:/root /backup/ #拉取远程目录以及目录下的所有文件
2.将本地/backup这个目录以及目录下的内容,推送至于41服务器的/tmp目录下
Push: rsync [OPTION…] SRC… [USER@]HOST:DEST
Push #推,上传
rsync -avz /backup root@172.16.1.41:/tmp/
远程通道传输方式问题:
必须通过ssh协议才可以传输
使用普通用户需要考虑权限问题
使用ssh系统用户,不安全
必须使用真实路径,不安全
3.守护进程侍输方式:rsync审身非常重要的功能(不使用系统用户,更加安全)
1.拉取rsync备份服务的backup模块数据至本地/mnt目录
Pull: rsync [OPTION…] [USERe]HOST::SRC… [DEST]
[root@nfs ~]# rsync -avz rsync_backup@192.172.16.1.41::backup/ /mnt/ –passwond-file=/etc/rsync.password
rsync –命令
[ÒPTION…] —选项
[USER@] –远程主机用户(虚拟用户)
HOST:: –远程主机地址
SRC.… –远程主机模块(不是目录)
[DEST] –将远程主机数据备份至本地什么位置
2.将本地/mnt目录推送至rsync备份服务器的backup模块
Push: rsync [OPTION…] SRC… [USER@]HOST::DEST
[root@nfs ~]# rsync -avz /mnt/ rsync_backup@192.172.16.1.41::backup/ –password-file=/etc/rsync.password
五、rsync服务实践
角色 | 系统 | ip | 主机名 |
服务端 | CentOS 7 | 192.168.78.128 | server01 |
客户端 | Ubuntu 20.4 | 192.168.78.130 | client01 |
一、配置服务端
1.服务、客户端都需要安装rsync
yum install -y rsync
apt install -y rsync
2.修改服务端配置文件
[root@server01 ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 100
timeout = 100
pid file = /var/run/rsync.pid
lock file = /var/lock/rsync.lock
log file = /var/log/rsync.log
secrets file = /rsync/rsync.passwd
transfer logging = yes
log format = %t %a %m %f %b
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
[backup]
comment = Mini Docker
path = /rsync/backup01
read only = false
auth users = text
list = false
全局参数
pid file: 指定rsync进程的pid文件的路径和名称
lock file: 支持max connections参数的锁文件
log file: rsync的日志文件路径和名称
uid: 指定rsync进程以什么用户身份在后台运行(必须是系统用户)
gid: 指定rsync进程以什么用户组身份在后台运行
port 监听端口(默认端口873)
timeout: 指定空闲超时时间
transfer logging = yes 记录传输文件日志
secrets file: 指定保存虚拟用户名和密码的数据库文件
log format = %t %a %m %f %b 日志文件格式
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 设置不需要压缩的文件
模块参数(可以写在全局部分,如果写在全局部分,则对所有的模块都生效)
path: 指定备份目录的路径
comment 注释模块说明
use chroot: 是否将用户锁定在家目录中
max connections: 指定可以进行同时连接的用户的最大数量
read only: 设置rsync服务端文件是否只读
write only:
list = true | false: 设置是否可以显示全部的模块列表
auth users:指定访问模块需要使用的用户名,这里的是虚拟用户(不是存在于/etc/passwd)
hosts allow: 指定可以访问模块或者rsync服务器端的IP地址(白名单)
hosts deny: 黑名单
3.创建目录文件和系统用户
[root@server01 ~]# mkdir -pv /rsync/backup01
# 创建虚拟用户文件
[root@server01 ~]# cd /rsync/
[root@server01 rsync]# touch rsync.passwd
[root@server01 rsync]# vim rsync.passwd
# 配置用户名和密码,密码可以任意设置,一个用户单独一行
text:123456
# 修改rsync.passwd文件权限,必不可少步骤
[root@server01 rsync]# chmod 600 rsync.passwd
# 创建一个新的用户组,设定为系统工作组:
[root@server01 ~]# groupadd -r rsync
# 创建系统用户,但不让登录系统,并追加指定组为该账户的用户组:
[root@server01 ~]# useradd -M -s /sbin/nologin -g rsync rsync
[root@server01 lock]# cd /rsync/
[root@server01 rsync]# chown -R rsync:rsync backup01
4.启动rsync
[root@server01 rsync]# systemctl start rsyncd
[root@server01 rsync]# systemctl enable rsyncd
[root@server01 rsync]# netstat -ntpl
5.客户端测试
root@client01:~# rsync -avz snap/ text@192.168.78.128::backup
Password:
sending incremental file list
./
lxd/
lxd/current -> 22753
lxd/21835/
lxd/22753/
lxd/common/
sent 198 bytes received 46 bytes 32.53 bytes/sec
total size is 5 speedup is 0.02
测试成功!!!
二、配置客户端
免密
1.为了减少重复输入密码,可以在客户端创建密码文件,推拉都不需要在手动输入密码了:
root@client01:~# vim /etc/rsync-client.passwd
123456
root@client01:~# chmod 600 /etc/rsync-client.passwd
root@client01:~# rsync -avz text@192.168.78.128::backup /root/ --password-file=/etc/rsync-client.passwd
receiving incremental file list
./
sent 32 bytes received 347 bytes 758.00 bytes/sec
total size is 20 speedup is 0.05
--password-file 系统可以自动从该位置下指定的文件中读取密码
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74647.html