安装工具
//本地开发机器
brew install lrzsz
//服务器也要安装
apt-get install lrzsz
安装iterm2
https://www.iterm2.com
添加脚本
#!/usr/bin/env bash#
# iterm2-zmodem
#
# copyright (c) 2013 by Harald Lapp
#
# AppleScript portion from:
# http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
##
# This script can be found at:
# https://github.com/aurora/iterm2-zmodem
##
# This is a re-implementation of the shell scripts "iterm2-recv-zmodem.sh" and
# "iterm2-send-zmodem.sh" found at https://github.com/mmastrac/iterm2-zmodem
## usage
if [[ $1 != "sz" && $1 != "rz" ]];
then
echo "usage: $0 sz|rz"
exit
fi# send Z-Modem cancel sequence
function cancel {
echo -e \\x18\\x18\\x18\\x18\\x18
}# send notification using growlnotify
function notify {
local msg=$1if command -v growlnotify >/dev/null 2>&1;
then
growlnotify -a /Applications/iTerm.app -n "iTerm" -m "$msg" -t "File transfer"
else
echo "# $msg" | tr '\n' ' '
fi
}#setup
[[ $LRZSZ_PATH != "" ]] && LRZSZ_PATH=":$LRZSZ_PATH" || LRZSZ_PATH=""PATH=$(command -p getconf PATH):/usr/local/bin$LRZSZ_PATH
ZCMD=$(
if command -v $1 >/dev/null 2>&1;
then
echo "$1"
elif command -v l$1 >/dev/null 2>&1;
then
echo "l$1"
fi
)# main
if [[ $ZCMD = "" ]];
then
cancel
echonotify "Unable to find Z-Modem tools"
exit
elif [[ $1 = "rz" ]];
then
# receive a file
DST=$(
osascript \
-e "tell application \"iTerm\" to activate" \
-e "tell application \"iTerm\" to set thefile to choose folder with prompt \"Choose a folder to place received files in\"" \
-e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"
)if [[ $DST = "" ]];
then
cancel
echo
fi cd "$DST"
notify "Z-Modem started receiving file"$ZCMD -e -y
echo notify "Z-Modem finished receiving file"
else
# send a file
SRC=https://www.it610.com/article/$(
osascript /
-e"tell application \"iTerm\" to activate" \
-e "tell application \"iTerm\" to set thefile to choose file with prompt \"Choose a file to send\"" \
-e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"
)if [[ $SRChttps://www.it610.com/article/= "" ]];
then
cancel
echo
finotify "Z-Modem started sending
$SRC"$ZCMD -e "$SRC"
echo notify "Z-Modem finished sending
$SRC"
fi
在下面的目录创建脚本iterm2-zmodem,将上面的脚本内容添加进去或者直接wget 下载脚本
cd /usr/local/bin
wget https://raw.githubusercontent.com/aurora/iterm2-zmodem/master/iterm2-zmodem
sudo chmod +x iterm2-zmodem
trigger 配置
【mac上透穿堡垒机器上传下载文件】
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/3ea1e15230644415a6756ce85f4f8831.jpg)
文章图片
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/8ee963246e8d4835ab80d519ec252851.jpg)
文章图片
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/ec9da33903a84d9293d4069b02e9f340.jpg)
文章图片
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/13239ac413624f94be3219aeca0ad8b8.jpg)
文章图片
添加如下配置
Regular expression: \*\*B0100
Action:Run Coprocess
Parameters:/usr/local/bin/iterm2-zmodem szRegular expression: \*\*B00000000000000
Action:Run Coprocess
Parameters:/usr/local/bin/iterm2-zmodem rz
使用 上传
登录远程服务器
执行如下命令 有弹框弹出 选择3.log文件开始上传
jumpserver@master-1:~/k8s/dev$ rz
jumpserver@master-1:~/k8s/dev$ 0023be50
jumpserver@master-1:~/k8s/dev$ # Z-Modem finished sending /Users/suke/Downloads/3.log ls
jumpserver@master-1:~/k8s/dev$ ls
3.logdelpod.shdesc.shexec.shlist.shlog.sh
jumpserver@master-1:~/k8s/dev$
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/83101dc108aa4ac4b406efeccc668ec3.jpg)
文章图片
下载
登录远程服务器
执行如下命令 指定下载的文件 有弹框弹出 选下载后存放的本地目录
jumpserver@master-1:~/k8s/dev$ sz delpod.sh
jumpserver@master-1:~/k8s/dev$ # Z-Modem started receiving file **0100000063f694jumpserver@master-1:~/k8s/dev$ ?**0100000063f694# Z-Modem finished receiving file \udc8a**0100000063f694: command not found
jumpserver@master-1:~/k8s/dev$
jumpserver@master-1:~/k8s/dev$ # Z-Modem finished receiving file
![mac上透穿堡垒机器上传下载文件](https://img.it610.com/image/info8/8a583834b49b47abb62c6bfbd3ac7512.jpg)
文章图片
推荐阅读
- Linux|109 个实用 shell 脚本
- linux笔记|linux 常用命令汇总(面向面试)
- Linux|Linux--网络基础
- linux|apt update和apt upgrade命令 - 有什么区别()
- linux|2022年云原生趋势
- Go|Docker后端部署详解(Go+Nginx)
- 开源生态|GPL、MIT、Apache...开发者如何选择开源协议(一文讲清根本区别)
- GitHub|7 款可替代 top 命令的工具