rsync的三种传输模式及常见报错
rsync的传输的三种模式:
1, 本地传输模式(类似于cp,不支持推送和拉取,只是单纯的复制)
2,远程传输模式 (类似于scp,又不同于scp),scp只支持全量备份,rsync支持增量备份和 差异备份
3,以守护进程的方式 (客户端和服务端)
一,本地传输模式:
1,格式
rsync [参数] [原来的路径] [现在的路径]
2,参数
-t # 保持文件时间信息
-r # 递归传输目录及子目录
常用的参数组合:-avzP
3,案例:
案例1:将/tmp/etc.tar.gz上传到/mnt目录下
[root@rsync opt]# rsync /tmp/etc.tar.gz /mnt/
[root@rsync opt]# ll /mnt/
total 11136
-rw-r--r--. 1 root root 11402223 Oct 19 16:04 etc.tar.gz
案例2:将/root目录传输到/mnt目录
[root@rsync opt]# rsync -r /root/ /mnt/
二、远程传输模式
1、推数据
rsync [参数] [本地文件路径] [用户]@[ip]:[远程路径]
案例:
将3.txt传输到db01服务器上的/opt目录
[root@rsync tmp]# rsync -avzP 3.txt root@172.16.1.51:/opt/
2、拉数据
rsync [参数] [用户]@[ip]:[远程路径] [本地文件路径]
案例:拉取db01服务器上的3.txt 拉到/root目录下
[root@rsync tmp]# rsync -avzP root@172.16.1.51:/opt/3.txt /tmp/
三、以守护进程的方式
1、为什么需要以守护进程的方式传输
1,保证数据安全:rsync传输时,使用的是系统用户和系统用户的密码,非常的不安全
2,使用普通传输又会出现权限问题
3,数据归档
2,步骤
部署服务端:rsync
1)、编写rsync的守护进程的配置文件
1.1)、编写配置文件
vi /etc/rsyncd.conf
原来的内容全删,新增下面内容:
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup] # 备份的模块(backup是模块的名称)(可以是其他名字)
comment = welcome to oldboyedu backup!
path = /backup # 备份的路径
1.2)、创建rsync的启动用户
useradd rsync -r -M -s /sbin/nologin
-M 不要自动建立用户的登入目录
1.3)、创建密码文件
touch /etc/rsync.passwd
1.4)、创建用户和密码关联数据
echo 'rsync_backup:123456' > /etc/rsync.passwd
1.5)、授权密码文件
chmod 600 /etc/rsync.passwd
2)、创建备份的目录
2.1)、创建目录
mkdir /backup
2.2)、将目录的用户修改成rsync
chown rsync.rsync /backup/
3)、启动rsync服务
systemctl start rsyncd
部署客户端:db01
1)、安装rsync
yum install rsync -y
2)、开始传输
2.1)、输入密码传输
rsync -avzP /opt/3.txt rsync_backup@172.16.1.41
2.2)、使用密码文件传输
[root@db01 opt]# echo "123456" > /etc/rsync.passwd
[root@db01 opt]# chmod 600 /etc/rsync.passwd
[root@db01 opt]# rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup -- password-file=/etc/rsync.passwd
3)、使用变量的方式进行传输
export RSYNC_PASSWORD=123456
rsync -avzP /opt/3.txt rsync_backup@172.16.1.41::backup