rsync使用简介

介绍

rsync是Linux下用于远程同步文件的工具,全称remote sync。rsync可以同步整个目录,同步链接指向的文件,增量同步,同步时排除特定文件,非常方便。rsync可以基于ssh协议传输,安全有保证。

使用

rsync命令格式为rsync [OPTION] SRC DST,其中SRCDST可以是本地路径,或者远程路径USER@HOST:PATHSRC还可以是多个路径,比如*.py。下面以同步本地文件到远程服务器为例,反向同步只需把路径改一下。
推荐先使用ssh-copy-id USER@HOST,设置可以密钥验证登录,省去繁琐的密码输入。

参数介绍
-a, --archive               档案模式; 相当于 -rlptgoD (no -H,-A,-X)
-v, --verbose               啰嗦模式
-r, --recursive             递归目录下的文件
-R, --relative              使用文件的相对路径,指定后源文件存为 DST/SRC,此时SRC如果为本地相对路径,比如 *.py,直接存储目标路径下比较方便。 
-u, --update                增量同步,传输修改时间更新的文件,跳过传过的没有修改的文件
-L, --copy-links            将链接指向的真正文件传过去
--exclude=PATTERN           去除某些文件
--max-size SIZE
--min-size SIZE             限制传输的大小,SIZE比如10KB,1MB等等
常用操作
  1. 同步当前目录下的所有文件到服务器,有时需要把代码同步过去就行了,data下的文件文件、隐藏文件都不需要,可以用
rsync -auvrRL --exclude '.*' --exclude 'data' --max-size 1MB ./* USER@HOST:PATH
  1. ~/.bashrc中写一个函数:将当前目录同步到服务器上。Windows就算了,Mac可以打开~/.bash_profile。说实话,我只用这么一个同步功能,想同步哪个目录同步哪个目录。
# 打开bashrc, Windows就算了,
vim ~/.bashrc
function sync-to-server(){
    pushd "$1"
    local dir_name="$(basename $(pwd))"
    rsync -auvrRL --exclude '.*' --exclude 'data' --max-size 1MB ./* USER@HOST:/home/USER/$dir_name
    pushd
}
# 使用的时候
sync-to-server DIR
  1. 从服务器同步文件下的所有文件到目录DST下面,exclude等参数也可以加上去
rsync -auvrL USER@HOST:PATH/* DST
  1. 如果目标服务器是指定了端口转发, 在传输的时候需要指定-e 'ssh -p PORT', 传输样例如下:
# 排除local .* 设定最大文件大小, 传输到目标服务器
rsync -auvRrL --exclude 'local' --exclude '.*' --max-size=1M -e 'ssh -p PORT' * USER@IP:DST_DIR
# 从目标服务器穿文件到本地
rsync -auvrL --exclude 'local' --exclude '.*' --max-size=1M -e 'ssh -p PORT' USER@IP:DST_DIR LOCAL_DIR

资源

  • Bash中没有rsync的话,安装rsync
  • 其他参数使用man rsync查看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值