rsync工具rsync有三种工作方式:
- 本地模式:本地文件系统上实现同步 。命令行语法格式为上述"Local"段的格式
- 基于传统的ssh协议,本地主机使用远程shell和远程主机通信
- 作为一个独立服务,本地主机通过网络套接字连接远程主机上的rsync daemon
本地模式:
rsync [OPTION...] SRC... [DEST]
例如:[root@LAP1 data]# rsync file1file111[root@LAP1 data]# lsfile1file11file111file2
基于传统的ssh协议使用格式:Pull:rsync [OPTION...] [USER@]HOST:SRC... [DEST]Push:rsync [OPTION...] SRC... [USER@]HOST:DEST
例如:rsync -av --delete /data/10.0.0.12:/back#不写用户名默认使用的就是当前主机使用的用户
作为一个独立服务:Pull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] #协议的形式访问,效果等同于上面Push:rsync [OPTION...] SRC... [USER@]HOST::DESTrsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
rsync常用选项:-v:显示rsync过程中详细信息 。可以使用"-vvvv"获取更详细信息 。-a --archive :归档模式,表示递归传输并保持文件属性 。-t --times:保持mtime属性 。强烈建议任何时候都加上"-t" , 否则目标文件mtime会设置为系统时间 , 导致下次更新,检查出mtime不同从而导致增量传输无效--delete :以SRC为主 , 对DEST进行同步 。多则删之,少则补之
rsync的软件包:官方网站: http://rsync.samba.org/软件包:rsync,rsync-daemon(CentOS 8)
服务文件:/usr/lib/systemd/system/rsyncd.service
配置文件:/etc/rsyncd.conf
端口:873/tcp
两种方式实现rsync服务器??rsync即可以作为服务器端,也可以作为客户端程序 。
方式一:通过rsync守护进程的方式实现rsync服务
#在备份服务器启动 rsync 进程[root@bakup_server ~]# rsync --daemon #--daemon选项表示启动为守护进程Failed to parse config file: /etc/rsyncd.conf #必须要有这个配置文件才能启动成功[root@bakup_server ~]# touch /etc/rsyncd.conf #需要创建这个配置文件才能正常启动[root@bakup_server ~]# rsync --daemon#启动rsync守护进程[root@bakup_server ~]# ss -ntl#守护进程启动后会监听873端口StateRecv-QSend-QLocal Address:PortPeer Address:PortLISTEN050.0.0.0:8730.0.0.0:*#设置rsync服务器的共享信息[root@bakup_server ~]# cat /etc/rsyncd.conf #等号之间可以有空格[backup]#定义存放数据共享的名字path = /bakup#真实的路径,存放共享文件的路径 (利用rsync将这个目录共享出去,共享出去的名字叫做bakup)read only = no#指定可读写,默认只读[root@bakup_server ~]# rsync --daemon #更改问配置文件以后需要重新开启守护进程才会生效[root@bakup_server ~]# setfacl -m u:nobody:rwx /bakup/ #指定目录给nobody权限,默认用户以nobody访问此目录使用客户端连接rsync备份服务器:#格式 rsync rsync://host 或者 rsync host::客户端查看服务器的情况:[root@data_server ~]# rsync rsync://10.0.0.12#以协议的形式访问backup#共享出来的名字[root@data_server ~]# rsync 10.0.0.12::#以服务的形式访问backup#实现客户端将文件拷贝到rsync共享的目录中注意:传输的时候不管以谁的身份,都会映射为nobody,所以不用写用户名都行[root@data_server ~]# rsync /root/anaconda-ks.cfg root@10.0.0.12::backup[root@bakup_server bakup]# lltotal 8-rw------- 1 nobody nobody 1526 Oct 24 17:48 anaconda-ks.cfg-rw-r--r-- 1 nobody nobody658 Oct 24 17:49 fstab
以独立服务方式运行rsync并实现验证功能??rsync-daemon:安装这个软件包以后会提供一个service服务 , 它会监听自己的独立端口[root@bakup_server ~]# yum install rsync-daemonInstalled:rsync-daemon-3.1.3-9.el8.noarch[root@bakup_server ~]# systemctl enable rsyncd.serviceCreated symlink /etc/systemd/system/multi-user.target.wants/rsyncd.service → /usr/lib/systemd/system/rsyncd.service.
说明:??rsync默认传输文件的时候不需要验证
启用rsync的验证功能的方法:
[root@backup-centos8 ~]#dnf -y install rsync-daemon#安装服务的时候自动创建rsync服务器的配置文件[root@centos8 ~]#vi /etc/rsyncd.confuid = root #远程用户映射到本机的用户,默认为nobody指定以哪个用户来访问共享目录,将之指定为生成的文件所有者 , 默认为nobodygid = root #默认为nobody#port = 874#可指定非标准端口,默认873/tcp#use chroot = nomax connections = 0#不限制最大连接数ignore errors#如果有些错误,就跳过这些错误exclude = lost+found/#跳过指定的目录 , 不去复制log file = /var/log/rsyncd.log# 日志所在位置pid file = /var/run/rsyncd.pid# 存放进程的pid文件lock file = /var/run/rsyncd.lock# 存放锁文件reverse lookup = no# 拒绝反向解析 , 不把ip解析为主机名#hosts allow = 10.0.0.0/24# 允许连接的主机[backup] #每个模块名对应一个不同的path目录,如果同名后面模块生效共享名path = /data/backup/ #共享的真实路径comment = backup dir#描述信息read only = no #默认是yes,即只读auth users = rsyncuser #默认anonymous可以访问rsync服务器用于验证的账号 , 只有这个账号才能去访问secrets file = /etc/rsync.pas#存放密码的文件 格式:用户名: 密码
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 什么是subsignature和return-type-substitutable
- 故事 --- Linux和UNIX之间的那些爱恨与情仇
- Briefings in Bioinformatics-2021 知识图谱-生物信息学-医学顶刊论文:生物信息学中的图表示学习:趋势、方法和应用
- 真我gt2pro和小米12哪个好-真我gt2pro和小米12哪个值得买
- 小米civi和红米k40对比哪个好-小米civi和红米k40区别
- 华为nova9pro和华为nova9的区别_哪款更值得入手
- 小米11pro和一加9pro对比_小米11pro对比一加9pro
- 华为p50pro和mate40pro哪个性价比高_参数配置对比
- 你有用过锤子和坚果手机吗好用不(锤子坚果手机和iphone6s哪个好)
- 红米k40和魅族18哪个好_红米k40和魅族18参数对比