服务器文件传输工具--Rsync
rsync的命令参数主要包括如下
rsync
-a 归档模式,表示以递归方式传输文件,并保持所有属性
-r 对于目录以递归模式处理,主要针对目录,传输的是目录必须加-r
-v 打印一些信息出来,比如速率,文件数量等。
-l 保留软连链
-L 向对待常规文件一样处理软链接,如果是src(源机)中有软链接文件,刚加上该选项后会把软连接指向的目标文件拷贝到dst(目标机)
-p 保持文件权限
-o 保持文件属主信息
-g 保持文件属组信息
-D 保持 设备文件信息
-t 保持 文件时间信息
--delete 删除那些dst中src没有的文件
--exclude=PATTERN指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)
PATTERN路径是相对弄要同步的路径如(rsync -avPz --exclude=zabbix /opt/sh 10.8.64.99::backup/tmp/ #排除的是/opt/sh/zabbix)
--progress或-P 在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量,同步的文件传输速度等等。。。
--bwlimit=10 (限制传输速度)
-u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖
-z 压缩 传输的过程中会压缩,我们并不会感知。 文件到了目标机器上我们看到的是一样的。
(工作中常用的几个 -a -v --delete --exclude)
使用rsync传输文件有两种模式,一种是通过ssh隧道来传输,另一种是通过连接服务端的rsync daemon来传输。
一下举一些例子来说明两种传输模式。
rsync同步ssh隧道方式:#后面的目录是目标地址
例1:rsync -avPz 192.168.183.109:/tmp/1.txt /tmp/ 拉文件:远程到本机
例2:rsync -avPz /tmp/1.txt 192.168.183.109:/tmp/ 推文件:本机到远程
例3:rsync -avPz -e "ssh -p 10022" /tmp/1.txt 192.168.183.109:/tmp/ 推文件:本机到远程,端口不是22的情况
rsync同步daemon方式
例1:不需要密码 学ssh免密码登陆
rsync -auvPz --bwlimit=10 (限制传输速度) tmp.txt test@<ip>::test --password-file=~/.rsync.password
例2:查询rsyncd可用模块 (list参数,yes会显示,no不会显示)
rsync -list --port 8873 192.168.186.118::
转自https://banbanpeppa.github.io/2019/09/18/linux/rsync/