《在iTerm2中使用Zmodem实现快速传输文件》要点:
本文介绍了在iTerm2中使用Zmodem实现快速传输文件,希望对您有用。如果有疑问,可以联系我们。
很多时候我们需要在本机和远端服务器间进行文件传输,通常都是使用 scp
命令进行传输.今天我们就来讲讲另一种更简单方便的方法:通过 Zmodem
在本地和远端服务器间快速传输文件.
Zmodem
是针对 modem
的一种支持错误校验的文件传输协议.Zmodem
是 Ymodem
的改进版,后者又是 Xmodem
的改进版.Zmodem
不仅能传输更大的数据,而且错误率更小.
利用 Zmodem
协议,可以在 modem
上发送 512 字节的数据块.Zmodem
包含一种名为检查点重启的特性,如果通信链接在数据传输过程中中断,能从断点处而不是从开始处恢复传输.
要让 iTerm2
在远端服务器上支持通过 Zmodem
协议传输,需要分别在服务端和客户端进行相应配置.网上大多数文档都只提到客户端部分.因为收发方都必须有支持 Zmodem
协议的工具,才能进行正常收发.下面我们就来看看是如何进行配置的:
lrzsz
软件包是 支持 Zmodem
协议的工具包. 其包含的 rz
、sz
命令是通过 ZModem
协议在远程服务器和终端机器间上传下载文件的利器.
为了正确通过 sz
、rz
命令传输文件,服务端需要安装 lrzsz
软件包的.
$ apt-get install lrzsz
$ yum install lrzsz
安装lrzsz
和服务器端一样,客户端同样需要安装 lrzsz
软件包.这里通过 Homebrew
进行 lrzsz
软件包安装,如果你还不会使用 Homebrew
,可参考 「macOS不可或缺的套件管理器——Homebrew」一文进行了解.
$ brew install lrzsz
配置iTerm2
在全球最大同性交友网站 Github
上,已经有人共享了一个叫「ZModem integration for iTerm 2」的项目.我们只需下载其相应脚本,并进行简单配置就可以很容易的在 iTerm2
上实现对 Zmodem
的支持.
项目地址:https://github.com/mmastrac/iterm2-zmodem
$ git clone https://github.com/mmastrac/iterm2-zmodem.git $ cd iterm2-zmodem $ cp iterm2-recv-zmodem.sh iterm2-send-zmodem.sh /usr/local/bin/
打开 iTerm2
,点击 Preferences
→ Profiles
选择指定的 Profile
,这里选 Default
.然后继续选择 Advanced
→ Triggers
,并点击 Edit
添加两个触发器.
按如下内容添加两个触发器,首先增加 sz
指令的触发器:
Regular expression: rz waiting to receive.\\*\\*B0100 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-send-zmodem.sh Instant: checked
其次增加 rz
指令的触发器:
Regular expression: \\*\\*B00000000000000 Action: Run Silent Coprocess Parameters: /usr/local/bin/iterm2-recv-zmodem.sh Instant: checked
成功增加完成后的效果,类似下图:
配置这两个触发器的作用就是让 iTerm2
根据终端上显示的字符通过指定的触发器调用相应的发送和接收脚本.
rz
命令sz filename1 filename2 … filenameN
命令上面详细介绍了如何在 macOS
下通过 Zmodem
快速传输文件的方法,你可能会问没有 macOS
的情况下如何破?其实在 Windows
下实现更加简单,只需使用一个支持 Zmodem
的终端软件就行了,这里推荐 XShell
.当然服务端的 lrzsz
软件包是必不可少的.
http://www.google.com
https://github.com/mmastrac/iterm2-zmodem
文章来自微信公众号:运维之美
转载请注明本页网址:
http://www.vephp.com/jiaocheng/2192.html