mac上透穿堡垒机器上传下载文件

安装工具

//本地开发机器
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=$1
    
    if 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
    echo

    notify "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=$(
        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 [[ $SRC = "" ]]; then
        cancel
        echo 
    fi

    notify "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上透穿堡垒机器上传下载文件_第1张图片
mac上透穿堡垒机器上传下载文件_第2张图片
mac上透穿堡垒机器上传下载文件_第3张图片

添加如下配置

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

Regular 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.log  delpod.sh  desc.sh  exec.sh  list.sh  log.sh
jumpserver@master-1:~/k8s/dev$

mac上透穿堡垒机器上传下载文件_第4张图片

下载

登录远程服务器
执行如下命令 指定下载的文件 有弹框弹出 选下载后存放的本地目录

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上透穿堡垒机器上传下载文件_第5张图片

你可能感兴趣的:(linux)