使用rsync代替scp实现多服务器间文件传输

背景

因为要跑的实验比较多,几个实验分配在几台服务器上跑,导致实验结果存在不同的服务器上,现在希望把他们copy到一起

方法

之前习惯于使用SCP命令在多个服务器之间传输,大多数情况都好用,但有几个小问题

  • 无法跳过已存在的文件:比如一个有很多文件的文件夹,在传输的过程中意外中断,后面你再传的时候只好从头开始,把已存在的文件再覆盖一次
  • 无法过滤部分文件:比如只想传输模型的预测结果*.nii.gz``*.json文件到另一台服务器,但是文件夹里有体积很大的模型文件并不需要传过去,scp无法方便地取消这些模型文件

rsync介绍

rsync 命令格式: rsync [OPTION] SRC DEST

OPTION选项功能
-a这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-r、-l、-p、-t、-g、-o、-D 选项。-a 选项后面可以跟一个 --no-OPTION,表示关闭 -r、-l、-p、-t、-g、-o、-D 中的某一个,比如-a --no-l 等同于 -r、-p、-t、-g、-o、-D 选项。
-r表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。
- -progress表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。
- -exclude=PATTERN表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)。
-u表示把 DEST 中比 SRC 还新的文件排除掉,不会覆盖。
-z加上该选项,将会在传输过程中压缩。

例子

rsync -avP --exclude=*.model --exclude=*.txt --exclude=*.pkl --exclude=*.npz 10.211.43.112:/home/data/xxx/nnUNet_trained_models/nnUNet/Model6  /home/data/xxx/nnUNet_trained_models/nnUNet/

这样就实现了排除 *.model *.txt *.pkl 这几类文件,将剩余文件copy到本地

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值