Mac 上使用 zmodem 发送和接收堡垒机文件
背景
公司的 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 发送和接收堡垒机文件相关推荐
- ipad safari php readfile mp4,php – 在mac上的safari中没有加载Wav文件
我正在尝试使用 PHP提供WAV文件,我希望它能够播放而不是下载.我正在设置这样的标题: $path = "wav.wav"; header('Accept-Ranges: byt ...
- mac上如何找到爱奇艺下载的文件
如何在Mac上找到爱奇艺的: /Users/换成自己用户名/Library/Containers/com.iqiyi.yingyin/Data/Library/Application Support/ ...
- 如何在 Mac 上的“快速查看”中查看和编辑文件
"快速查看"几乎为所有文件类型提供了快速且完整大小的预览,且无需打开文件.只需按下空格键即可旋转照片.修剪音频和视频片段,以及使用"标记"来裁剪照片和给图像或 ...
- 上位机发送与接收下位机数据
用自带的SeriPort控件或者可以用seriport类,根据上位机与下位机同行寻得协议发送接收数据. 设置buttion控件,点击buttion 发送相应数据: private void send_ ...
- 在 Mac 上如何更改用户全名/账户名/个人文件夹名/电脑名?
很多人在使用 Mac 的时候都会有更改用户全名/账户名/电脑名称的需求,但又不知道如何更改.本文就教教大家如何更改这些名称. 目录 区分 用户全名 账户名称 个人文件夹名 电脑名 内容及风险程度 如何 ...
- 如何通过短信转发在iPad和Mac上发送和接收短信
从iOS 7开始,Apple提供了文本转发服务,可以将通过iPhone的蜂窝网络接收的SMS消息推送到其他Apple设备. 使用同一网络,转发服务还允许您将iPad或Mac上的消息发送到其他电话号码, ...
- 网络——在网络上发送,接收数据
问题 创建并加入一个网络会话是一回事,但如果不能发送或接收任何数据那么网络会话有什么用呢? 解决方案 当玩家连接到会话时,你可以在一个PacketWriter流中存储所有想要发送的数据.完成这个操作后 ...
- 消息队列(定义、结构、如何创建、消息队列的发送与接收、发送与接收实例)
一.定义 1.消息队列是一种先进先出的队列型数据结构,实际上是系统内核中的一个内部链表.消息被顺序插入队列中,其中发送进程将消息添加到队列末尾,接受进程从队列头读取消息. 2.多个进程可同时向一个消息 ...
- win10显示隐藏文件_如何在Mac上显示隐藏文件?苹果mac显示隐藏文件夹方法
与任何操作系统一样,macOS会将重要文件隐藏起来,以防止意外删除它们并因此而损坏系统.但是,在某些情况下,您可能需要在Mac上显示隐藏文件,例如,浏览" 库"文件夹并清除旧日志, ...
- mac catalina删除系统多余文件 内存不足_macOS Catalina Patcher(如何在旧mac上安装Catalina系统)...
macOS Catalina Patcher是一款macOS Catalina修补程序,可以在旧mac上安装最新的Catalina系统工具.macOS Catalina 10.15是Apple受欢迎的 ...
最新文章
- div 相同属性提取
- pandas使用to_sql方法将dataframe注册为数据库表进行数据整合和数据清洗并不对比SQL操作和dataframe操作
- Big Data Exchange宣布在南京建设数据中心
- 多线程—线程池Executor框架及四种常用线程池
- 乌托邦式的经理人日记——小的奖励激发员工热情
- 面向对象的5条基本设计原则
- 网络安全以及常见的网络攻击
- 黑马程序员--多线程
- AI能力在智慧养殖应用现状
- CentOS7 Docker 端口映射
- 关于spring security的URL路径验证问题
- FATAL Exited too quickly (process log may have details)
- 工业相机基础知识详述 —— 焦平面,像平面,弥散圆,光圈,分辨率,景深,接口,靶面尺寸
- Python_首字母大写
- 迁移学习和微调深度卷积神经网络
- 浅谈计算机教学的现状分析,浅谈中职计算机专业教学的现状与对策
- 推荐十款推荐十款超赞的Googleamp;nbs…
- 虚拟机无法玩腾讯游戏该怎么办
- python: format
- 湖南大学基于SMTP和POP3的邮件系统——计算机网络课设