Rsync应用详解
一、什么是Rsync
Rsync(Remote synchronization)是一款开源实用的传输工具、可实现全量以及增量的数据备份。
二、Rsync特点
可以将整个目录或者文件系统进行镜像
可以保存源文件的所有属性
优化了备份方式,效率高
可以使用rssh或者ssh以及socket传输数据
支持匿名传输
三、Rsync应用场景
定时备份:crond + rsync
实时备份:inotify(sersync)+rsync
三、Rsync具体应用
应用一:本地模式(不常用)
1)本地数据文件拷贝(cp)
rsync backup.txt /tmp # 将backup.txt文件拷贝到tmp目录下
2)远程数据文件拷贝(scp)
scp -rp /root/backup.txt root@172.168.0.31:/root # 将本地backup.txt文件拷贝到172.168.0.31远程主机root目录下(root用户)
-r # 表示递归复制文件数据
-p # 表示文件传输中属性不变
备注:
scp命令在指定目录的时候无论后面是否有/都是将整个文件夹进行远程拷贝
缺点:需要输入远程主机的登陆密码
rsync -rp /root/bankup.txt root@172.168.0.31:/root # 将本地backup.txt文件拷贝到172.168.0.31远程主机root目录下(root用户)
备注:
rsync命令在备份目录的时候注意目录是否有/;若有/表示仅备份目录里面的内容;若没有/表示备份整个目录
缺点:需要输入远程主机的登陆密码
3)远程删除文件(rm)
第一步:本地创建一个空目录 mkdir /zero
第二步:远程同步文件夹
rsync -rp -delete /zero/ root@192.168.0.31:/root/test/ # 清空远程主机192.168.0.31中test文件夹内容
4)查看文件内容(ls)
[root@backup ~]# rsync backup.txt
-rw-r--r-- 12 2020/08/25 22:19:39 backup.txt
应用二:远程shell模式(不常用)
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
备份服务器 <- 存储服务器(拉)
[root@backup ~]# rsync -rp root@172.16.1.31:/root/Hello.py /root # 将远程存储服务器的数据拉到本地备份服务
备份服务器 -> 存储服务器(推)
[root@nfs ~]# rsync -rp Hello.py root@172.16.1.41:/root # 将本地存储服务器的数据推送给备份服务器
备注:前两种应用因为数据的传输需要输入密码而不常用
应用三:守护进程模式
1)守护进程语法
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
解释:
SRC - 源文件的位置
DEST - 目标文件的位置
USER@ - 登陆用户的身份,如果一致即可省略
HOST - 主机名或者IP地址
2)配置文件
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# [ftp]
# path = /home/ftp
# comment = ftp export area
#uid = rsync
#gid = rsync
#port = 873
##fake super = no
#use chroot = no
#max connections = 200
#timeout = 300
#pid file = /var/run/rsyncd.pid
#lock file = /var/run/rsync.lock
#log file = /var/run/rsyncd.log
#ignore errors
#read only = false
#list = false
#hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
#auth users = rsync_backup
#secrets file = /etc/rsync.password
#[backup]
#comment = 'backup dir by chaplain'
#path = /backup