运维rsync学习001
一、rsync是什么?
rsync 是一个功能强大且灵活的文件同步工具,广泛用于本地和远程系统之间的文件复制与同步。它通过差异传输算法只传输文件的变化部分,从而显著提高效率,特别适合备份、镜像和大量数据传输。
二、使用步骤
常用语法
rsync [选项] 源路径 目标路径
-a:归档模式,保留权限、时间戳、符号链接等。
-v:详细输出。
-z:传输时压缩数据。
-e ssh:使用 SSH 作为传输通道。
-P 断点续传 + 进度条,大文件必备
注意:与mv、cp 命令不同的是 /source/dir → 同步目录本身
/source/dir/ → 同步目录内容
1.本地传输(不常用)
rsync -avz /source/dir/ /dest/dir/
2.远程传输(会用)
拉取操作
案例a.备份服务器(10.0.0.41)向web服务器(10.0.0.7)进行拉取(pull)7.txt 到本地目录
语法:
rsync [option] [user@]host:src [dest]
rsync -avz root@10.0.0.7:7.txt ./
The authenticity of host '172.16.1.7 (172.16.1.7)' can't be established.
ECDSA key fingerprint is SHA256:NZBjS7H4/I+VWv+ZZ0uWberEFDACpaL6oHyCr/96uRc.
ECDSA key fingerprint is MD5:65:97:9b:45:23:97:15:d8:17:29:b1:21:b4:37:0b:7e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.7' (ECDSA) to the list of known hosts.
执行过程中需要被拉取服务器的root密码
root@172.16.1.7's password:
receiving incremental file list
7.txt
sent 43 bytes received 123 bytes 30.18 bytes/sec
total size is 37 speedup is 0.22
[root@backup:~]# ls
7.txt
推动操作
案例b.web01服务器(10.0.0.7)推动(push)txts 目录及文件 至备份服务器家目录(10.0.0.41)
语法:
rsync [option] [src] [user@]host:dest
[root@backup:~]# rsync -avz txts root@10.0.0.7:./
root@10.0.0.7's password:
sending incremental file list
txts/
txts/1.txt
txts/2.txt
sent 173 bytes received 58 bytes 51.33 bytes/sec
total size is 0 speedup is 0.00
[root@web01:~]# ls
txts
注意:如果不加用户,默认以当前系统登录的用户身份进行远程连接,但是要对方的用户名和密码
同步7的txts目录至本地,默认使用root进行连接,需要7的root的密码
[root@backup:~]# rsync -avz 10.0.0.7:txts ./
用域名传输:前提是得有域名和对应的ip地址
假如域名为www.hehe.com
[root@backup:~]# rsync -avz www.hehe.com:txts ./
用主机名传输
无法解析,需要修改本地hosts文件
[root@backup:~]# rsync -avz web01:txts ./
小结
下载,远程服务器在前面
上传,远程服务器在后面
3.守护进程传输(常用)
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 = yes
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 backup! # 注释信息
path = /backup #服务端接受备份数据的目录
3.根据配置文件创建必要的数据
1)创建rsync虚拟用户
[root@backup ~]#useradd -M -s /sbin/nologin rsync
[root@backup ~]#id rsync
uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)
2)创建密码文件
[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 11:54 /etc/rsync.passwd
4)创建backup目录
[root@backup ~]#mkdir /backup
[root@backup ~]#ll -d /backup
drwxr-xr-x 2 root root 6 Apr 8 11:55 /backup
5)修改目录的权限为rsync用户
[root@backup ~]#ll -d /backup
drwxr-xr-x 2 root root 6 Apr 8 11:55 /backup
[root@backup ~]#chown rsync.rsync /backup
[root@backup ~]#ll -d /backup
drwxr-xr-x 2 rsync rsync 6 Apr 8 11:55 /backup
4.启动服务并加入开机自启
[root@backup ~]#systemctl start rsyncd
[root@backup ~]#systemctl enable rsyncd
测试检查 873端口
[root@backup ~]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1290/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1448/master
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 4041/rsync
tcp6 0 0 :::22 :::* LISTEN 1290/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1448/master
tcp6 0 0 :::873 :::* LISTEN 4041/rsync
客户端测试推送至服务器:
10.0.0.7 客户端
10.0.0.41 服务端
守护进程的客户端需要执行的命令格式:
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST # 冒号后面必须是模块的名称
rsync -avz txts rsync_backup@10.0.0.41::backup
案例:将10.0.0.7 家目录下的txts目录推送到10.0.0.41服务端的backup模块
[root@web01:~]# rsync -avz txts rsync_backup@10.0.0.41::backup
Password:
sending incremental file list
txts/
txts/1.txt
txts/2.txt
sent 177 bytes received 66 bytes 97.20 bytes/sec
total size is 0 speedup is 0.00
#服务端检查
[root@backup:~]# ls /backup
txts
案例:指定下载7.txt至服务端
[root@web01 ~]#rsync -avz rsync_backup@10.0.0.41::backup/oldboy/7.txt .
Password:
receiving incremental file list
7.txt
三、知识点小结
1.rsync 增量 全量
2.rsync三种模式
本地模式 了解类似cp命令 优于cp
远程访问模式:
推送: 将本地的推送到目标服务器
rsync -avz a.txt root@172.16.1.7:/opt/
拉取: 将目标服务器的b.txt 下载到本地当前目录
rsync -avz root@172.16.1.7:/root/b.txt ./
守护进程模式:
服务端: 安装服务 配置服务 启动服务873
配置文件中的重点:
1.启动用户rsync 必须系统中存在的
2.游戏账号rsync_backup
3.游戏账号所在的文件 /etc/rsync.passwd 权限600
rsync_backup:123456
4.模块名称和文件上传的目录位置
[rsync]
path = /backup
rwxr-xr-x rsync rsync /backup
客户端
推送: rsync -avz a.txt rsync_backup@172.16.1.41::rsync
拉取: rsync -avz rsync_backup@172.16.1.41::rsync/a.txt ./

1208

被折叠的 条评论
为什么被折叠?



