islishude / blog

my web notes
https://islishude.github.io/blog/
101 stars 15 forks source link

在跳板机环境下使用 iTerm2 自由上传下载文件 #249

Open islishude opened 3 years ago

islishude commented 3 years ago

如果远程服务器可以自由与本地通信,那么最简单的方式就是 scp 命令

# upload
scp local_file remote_username@remote_ip:remote_folder 

# download
scp -r remote_username@remote_ip:remote_folder local_folder

但是存在跳板机这一个中间层,而且远程服务器不能直接连接,就不能直接使用这种方式。

因为可以通过 SSH 登录远程服务器,那么我们可以直接 SSH 环境下直接上传下载文件,这种方式类似于在 shell 中复制粘贴一样。

首先确认远程服务器和本机机器都安装了 lszrz

# Remote server
apt install -y lrzsz

# local machine
brew install lrzsz

然后安装脚本到 $PATH 或者其它目录,并使其可执行。

sudo wget -O /usr/local/bin/iterm2-zmodem https://gist.githubusercontent.com/islishude/716c59c2529cbd87babbb2fdaf49f3ae/raw/e642bbed611fa607335e9a9edf5a1609be3567dd/iterm2-zmodem

sudo chmod +x /usr/local/bin/iterm2-zmodem

然后使用 iTerm2 依次打开 Preference -> Profile -> Advance -> Trigger Edit 配置

按照下面内容进行填写即可。

Regular expression: \*\*B0100
Action:             Run Coprocess
Parameters:         /usr/local/bin/iterm2-zmodem sz
instant: true

Regular expression: \*\*B00000000000000
Action:             Run Coprocess
Parameters:         /usr/local/bin/iterm2-zmodem rz
instant: true

最后进行测试:

在远程服务器运行 rz 本地就会弹出窗口要求选择要上传的文件,选择后即上传

image

在远程服务器运行 sz filename1 filename2 … filenameN 本地就会弹出窗口要求保存文件,选择后即下载。

image

mzvast commented 2 years ago
sudo chmod +x /usr/lcoal/bin/iterm2-zmodem

local拼错了哈,应该是

sudo chmod +x /usr/local/bin/iterm2-zmodem
islishude commented 2 years ago

嗯,对,之前忘了改了