使用 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!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM