Mac上如何通过跳板机向服务器上上传大文件
最近的工作中,要在服务器上,做大量数据的运算。因此有了通过跳板机向服务器上传输大文件(几十G)的需求。由于需要通过跳板机,因此,scp的方法在此不适用了,需要通过rz、sz的方式。
我是通过如下两个步骤实现的:
1. 安装iterm2,然后就可以使用rz、sz进行传输了
2. 利用命令split分包
3. 上传
4. 利用命令cat再合成一个包
1. Mac端安装iterm2
1.1.
brew install lrzsz
1.2.
cd /usr/local/bin
sudo wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh
sudo wget https://raw.github.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh
sudo chmod 777 /usr/local/bin/iterm2-*
打开Item2,点击preferences → profiles,选择某个profile,如Default,之后继续选择advanced → triggers,添加编辑添加如下triggers:
Regular | Expression Action | Parameters |
---|---|---|
rz waiting to receive.**B0100 | Run Silent Coprocess | /usr/local/bin/iterm2-send-zmodem.sh |
**B00000000000000 | Run Silent Coprocess | /usr/local/bin/iterm2-recv-zmodem.sh |
2. 分包上传再合并
参考链接:
2.1 split分包
- 利用split命令对大文件(以ev.zip为例)进行分包
split -b100k ev.zip ev
- md5验证
md5sum ev.zip
2.2 上传
- 在服务器端利用rz命令上面的小文件分别传到服务器上
2.3 合并
- 合并
cat ev* > ev.zip
- 服务器端利用md5sum命令进行验证
md5sum ev.zip
和mac端的md5一致,传输成功
3. 结论
上面即通过跳板机从客户端向服务器传输大文件的过程,若要从服务器下载,将整个过程逆过来进行即可。