本文是整理如何在mac下安装和配置rz、sz工具,经跳板机访问服务器上传下载文件。
公司设置了跳板机,jumpserver,无法直连服务器,没法直接用scp上传下载文件。怎么办?同事告诉有个rz、sz的工具。才知道还有Zmodem、Xmodem、Ymodem这样的古老协议。
我开始觉得很神秘,为什么用终端连上服务器,在终端界面里敲一个命令能弹出窗口,选择文件上传。其实linux服务上目前是安装了rz、sz,那么需要本地终端也安装相应工具和配置好触发,在服务执行命令输出的时候,调用本地的rz、sz工具,就可以编码发送和收取了。
windows下XShell、SecureCRT直接支持Xmodem,Zmodem,Ymodem传输。mac下有大量的文章介绍使用iTerm2终端使用rz、sz的方法。但是有两点问题,一个是给的脚本地址要么访问不到,要么是配置触发器不对;当然也有对的,但是这尝试的代价太大不是,折腾我半天(这也是要写下本文的缘由)二是直连服务器可以,经过跳板机就不行了,话说我能直连我用scp不就行了。
废话啰嗦完,总结整理如下:
1、安装rz、sz
$ brew install lrzsz
2、配置iTerm2的触发器
这个脚本的官方地址是: iTerm2-zmodem ,这个是由iterm2的官网触发器帮助文档最后给的示例连接。
由于github开始变得“不稳定”了,我就贴一下,备用:
保存 iterm2-send-zmodem.sh
和 iterm2-recv-zmodem.sh
两个脚本到 /usr/local/bin/
。当然换个路径也可以,最后修改执行的路径就行。
iterm2-recv-zmodem.sh
的内容如下:
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME =