使用 zssh 进行 Zmodem 文件传输

Zmodem 最早是设计用来在串行连接(uart、rs232、rs485)上进行数据传输的,比如,在 minicom 下,我们就可以方便的用 Zmodem (说 sz 、rz 可能大家更熟悉)传输文件。只不过串口本身传输速度不快,文件大的话会让人有点崩溃。

没有彻底把笔记本装成 mint 前,在 windows 下都是用 secureCRT 来和板子进行通信的。secureCRT 下通过 ssh 连接开发板时, 可以方便的使用 Zmodem来进行文件的上传下载,但是,在 ubuntu 下似乎不是那么好实现。所以,也就一直在用 scp。

今天用腻了 scp,想恢复方便的 sz、rz,折腾了半天,终于找到了方法。

首先,mint(ubuntu、debian 类似)下需要安装下面两个包,都是官方包:

sudo apt-get install lrzsz
sudo apt-get install zssh 

其中,zssh 提供了一个在当前 ssh 中连接中进行文件传输的“管道”,真正执行 Zmodem 传输的,还是 lrzsz。当然,板子上也是要有 lrzsz 包的,这需要自己交叉编译放上去。

1、 使用 zssh 替代 ssh 连接到目标系统,并登入:

luo@Luo-X220 ~ $ zssh root@192.168.1.230
Press ^@ (C-Space) to enter file transfer mode, then ? for help

root@192.168.1.230's password:
[root@FriendlyARM /]#

2、下载文件到本地。比如,我们想从目标系统下载 /www/leds.html 到本地:

[root@FriendlyARM /www]# ls
images               leds.cgi             webcam.html
index.html           leds.html
led-result.template  mini2440.png
[root@FriendlyARM /www]# sz leds.html
�B00000000000000
(此处,按 ctrl + @ 进入文件传输状态)
zssh > rz
Receiving: leds.html                                                 
Bytes received:    4889/   4889   BPS:646854               

Transfer complete
[root@FriendlyARM /www]#

在目标系统输入 sz (send in Zmodem)时,我们开启了文件发送,此处可能会有乱码,暂时不管;然后,按 Ctrl+@ 进入文件传输模式,输入 rz 并回车进行文件下载,下载完成后,自动退出文件传输模式。 进入文件下载模式后,事实上,是进入了本机的一个终端,我们还可以使用常用命令行工具如ls,mkdir 等进行一些操作。另外,还有由 zssh 解析的如下工具:

3. 发送文件到目标系统。比如,我们要上传文件

[root@FriendlyARM /tmp]# ls
qtembedded-0       usb3g.modemstatus
[root@FriendlyARM /tmp]# 
(此处,按 ctrl + @ 进入文件传输状态) zssh > ls Audiobooks Documents Music Public temp Videos build Downloads Pictures refer Templates work Desktop leds.html Podcasts router usr zssh > cd /tmp/ zssh > ls dropbear-2016.74 matecorba-luo pcaptest_F pulse-vXbjEXNVREX3 dropbear-2016.74.tar.bz2 mintUpdate plugtmp ssh-oTlcUBNo1637 keyring-9RSy6J mozilla_luo0 pulse-PKdhtXMmr18n zssh > sz dropbear-2016.74.tar.bz2 Sending: dropbear-2016.74.tar.bz2 Bytes Sent:1622234 BPS:3780858 Transfer complete [root@FriendlyARM /tmp]# ls dropbear-2016.74.tar.bz2 qtembedded-0 usb3g.modemstatus [root@FriendlyARM /tmp]#

 上面的操作中,我们直接按 ctrl+@ 进入文件传输模式,然后,在文件传输模式中,使用 cd 指令切换到本机的 /tmp/ 目录(dropbear-2016.74.tar.bz2 放在这里),然后输入 sz dropbear-2016.74.tar.bz2 并回车,自动完成传输。

that's all!

原文地址:https://www.cnblogs.com/pied/p/5813018.html