背景

公司的 CentOS 服务器需要通过堡垒机登录,上传下载文件不能直接使用 scp 的方式操作,于是采用 zmodem 来实现

实现

首先服务器系统 CentOS 上要安装 zmodem 的实现工具 lrzsz,通过命令(通常情况下是已经安装过的)

yum -y install lrzsz

本地的 PC 我使用 Mac 电脑,按如下流程进行

1,安装 lrzsz

brew install lrzsz

如果 brew 没有修改过镜像服务器,先按这篇说明进行操作,这样下载速度才不会很慢

HomeBrew 镜像加速

2, 创建 item2 的 zmodem 脚本

cd /usr/local/bin
touch item2-send-zmodem.sh
touch iterm2-recv-zmodem.sh

文件内容如下

item2-send-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 domainFILE=`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 [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18echo \# Cancelled transferecho
elseecho $FILE/usr/local/bin/sz "$FILE"echo \# Received $FILEecho
fi

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 domainFILE=`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 [[ $FILE = "" ]]; thenecho Cancelled.# Send ZModem cancelecho -e \\x18\\x18\\x18\\x18\\x18echo \# Cancelled transferecho
elseecho $FILEcd "$FILE"/usr/local/bin/rz echo \# Received $FILEecho
fi

给文件赋予权限

chmod 777 item2-*

3, 设置 item2

修改 iTerm2 的 default trigger( iTerm 工具栏 -> Profiles -> Open Profiles -> Edit Profiles -> Advanced -> Triggers 的 Edit 按钮 )

添加两条 trigger,分别设置 Regular expression,Action,Parameters,Instant 如下

第一条:

Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked

第二条:

Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked

如下图

使用

现在可以使用了,尝试一下

本地发文件到远端服务器

1,item2 登录到远端服务器

2,服务器上执行 sudo rz (要提权,否则文件传不上去)

3,此时会弹出文件选择框,选择要上传的文件后会进行传输

本地下载远端服务器文件

1,item2 登录到远端服务器

2,在服务器上执行 sz filename

3,此时会弹出文件选择框,选择要下载到本地的路径后会进行传输

大功告成,可以舒服的玩转上传下载了

Mac 上使用 zmodem 发送和接收堡垒机文件相关推荐

  1. ipad safari php readfile mp4,php – 在mac上的safari中没有加载Wav文件

    我正在尝试使用 PHP提供WAV文件,我希望它能够播放而不是下载.我正在设置这样的标题: $path = "wav.wav"; header('Accept-Ranges: byt ...

  2. mac上如何找到爱奇艺下载的文件

    如何在Mac上找到爱奇艺的: /Users/换成自己用户名/Library/Containers/com.iqiyi.yingyin/Data/Library/Application Support/ ...

  3. 如何在 Mac 上的“快速查看”中查看和编辑文件

    "快速查看"几乎为所有文件类型提供了快速且完整大小的预览,且无需打开文件.只需按下空格键即可旋转照片.修剪音频和视频片段,以及使用"标记"来裁剪照片和给图像或 ...

  4. 上位机发送与接收下位机数据

    用自带的SeriPort控件或者可以用seriport类,根据上位机与下位机同行寻得协议发送接收数据. 设置buttion控件,点击buttion 发送相应数据: private void send_ ...

  5. 在 Mac 上如何更改用户全名/账户名/个人文件夹名/电脑名?

    很多人在使用 Mac 的时候都会有更改用户全名/账户名/电脑名称的需求,但又不知道如何更改.本文就教教大家如何更改这些名称. 目录 区分 用户全名 账户名称 个人文件夹名 电脑名 内容及风险程度 如何 ...

  6. 如何通过短信转发在iPad和Mac上发送和接收短信

    从iOS 7开始,Apple提供了文本转发服务,可以将通过iPhone的蜂窝网络接收的SMS消息推送到其他Apple设备. 使用同一网络,转发服务还允许您将iPad或Mac上的消息发送到其他电话号码, ...

  7. 网络——在网络上发送,接收数据

    问题 创建并加入一个网络会话是一回事,但如果不能发送或接收任何数据那么网络会话有什么用呢? 解决方案 当玩家连接到会话时,你可以在一个PacketWriter流中存储所有想要发送的数据.完成这个操作后 ...

  8. 消息队列(定义、结构、如何创建、消息队列的发送与接收、发送与接收实例)

    一.定义 1.消息队列是一种先进先出的队列型数据结构,实际上是系统内核中的一个内部链表.消息被顺序插入队列中,其中发送进程将消息添加到队列末尾,接受进程从队列头读取消息. 2.多个进程可同时向一个消息 ...

  9. win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法

    与任何操作系统一样,macOS会将重要文件隐藏起来,以防止意外删除它们并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览" 库"文件夹并清除旧日志, ...

  10. mac catalina删除系统多余文件 内存不足_macOS Catalina Patcher(如何在旧mac上安装Catalina系统)...

    macOS Catalina Patcher是一款macOS Catalina修补程序,可以在旧mac上安装最新的Catalina系统工具.macOS Catalina 10.15是Apple受欢迎的 ...

最新文章

  1. div 相同属性提取
  2. pandas使用to_sql方法将dataframe注册为数据库表进行数据整合和数据清洗并不对比SQL操作和dataframe操作
  3. Big Data Exchange宣布在南京建设数据中心
  4. 多线程—线程池Executor框架及四种常用线程池
  5. 乌托邦式的经理人日记——小的奖励激发员工热情
  6. 面向对象的5条基本设计原则
  7. 网络安全以及常见的网络攻击
  8. 黑马程序员--多线程
  9. AI能力在智慧养殖应用现状
  10. CentOS7 Docker 端口映射
  11. 关于spring security的URL路径验证问题
  12. FATAL Exited too quickly (process log may have details)
  13. 工业相机基础知识详述 —— 焦平面,像平面,弥散圆,光圈,分辨率,景深,接口,靶面尺寸
  14. Python_首字母大写
  15. 迁移学习和微调深度卷积神经网络
  16. 浅谈计算机教学的现状分析,浅谈中职计算机专业教学的现状与对策
  17. 推荐十款推荐十款超赞的Googleamp;nbs…
  18. 虚拟机无法玩腾讯游戏该怎么办
  19. python: format
  20. 湖南大学基于SMTP和POP3的邮件系统——计算机网络课设

热门文章

  1. Xshell 5下载详细教程
  2. Onvif协议:IPC客户端开发之图像抓拍
  3. MySQL的自定义函数
  4. php 去除 bom,php 去除文件BOM头的方法
  5. 使用Blender编辑Character Creater 4的人物形象
  6. Windows 7 7601.24291(2019版) 全补丁集成版ISO映像,编译于2018年11月10日
  7. 上海迪士尼度假区快乐旅游趋势报告:中国主题乐园行业八大趋势
  8. 常见网络游戏的端口列表
  9. javaweb课程设计房屋租赁系统
  10. 2019春运购票指南 “盘”票不易 回家过年的票你买到了吗