1、簡述
? 通常,利用SSH管理遠程Linux服務器時,經常需要與本地交互文件。當然,我們可以利用FTP方式,比如通過Filezilla客戶端軟件。不過直接使用SSH軟件(SecureCRT、Xshell)自帶的上傳和下載功能無疑使最方便快捷的。通常SSH軟件支持的文件傳輸協議主要有ASCII、Xmodem、Zmodem等。
? rz,sz是便是Linux/Unix同Windows進行ZModem文件傳輸的命令行工具。
使用前提:?
首先,你的Linux端(CentOS, Ubuntu)需要安裝rz/sz命令,也就是 lszrz 包。
其次,windows端需要支持ZModem的telnet/ssh客戶端(Xshell,SecureCRT支持,好像putty不支持),SecureCRT就可以用SecureCRT登陸到Unix/Linux主機(telnet或ssh均可)
運行命令rz,即是接收文件,xshell就會彈出文件選擇對話框,選好文件之后關閉對話框,文件就會上傳到linux里的當前目錄。如果要上傳文件,直接用鼠標點住文件往X-shell里面一拖即是
運行命令 sz file 就是發文件到windows上(保存的目錄是可以配置) 比ftp命令方便多了,而且服務器不用再開FTP服務了
2、文件傳輸協議
? 文件傳輸是數據交換的主要形式。在進行文件傳輸時,為使文件能被正確識別和傳送,我們需要在兩臺計算機之間建立統一的傳輸協議。這個協議包括了文件的識別、傳送的起止時間、錯誤的判斷與糾正等內容。常見的傳輸協議有以下幾種:
-
ASCII:這是最快的傳輸協議,但只能傳送文本文件。?
-
Xmodem:這種古老的傳輸協議速度較慢,但由于使用了CRC錯誤偵測方法,傳輸的準確率可高達99.6%。?
-
Ymodem:這是Xmodem的改良版,使用了1024位區段傳送,速度比Xmodem要快
-
Zmodem:Zmodem采用了串流式(streaming)傳輸方式,傳輸速度較快,而且還具有自動改變區段大小和斷點續傳、快速錯誤偵測等功能。這是目前最流行的文件傳輸協議。?
3、在Linux上安裝lrzsz
? 單單是SSH客戶端軟件支持以上文件傳輸協議(ASCII,Xmodem,Ymodem,Zmodem)還不行,我們的Linux服務器上也得安裝相應的軟件,以支持這些文件傳輸協議才行。在Linux上,lrzsz就是完成此任務的,lrzsz就是一個支持?Zmodem?傳輸協議的工具。我們通過sz/rz兩個命令,分別發送/接收文件。如果我們的系統中沒有安裝lrzsz這個包,就會報錯,安裝即可解決。
| 1 2 3 4 5 6 7 | [root@localhost?~]#?rz -bash:?rz:?command?not?found ##?For?CentOS/RHEL [root@localhost?~]#?yum?-y?install?lrzsz ##?For?Ubuntu #?sudo?apt-get?install?lrzsz |
4、理解記憶
? 其中,對于sz和rz的理解與記憶我用了如下的方法(很多時候容易搞混):
? 記住一點,不論是send還是received,動作都是在服務器上發起的。我們習慣了說上傳或是下載,其實大可不必。使用這兩個命令,只要思考一點,是要把文件從服務器上發送出去,還是從客戶端接收回來,就可以了。
好吧,最后總結為一句話:
????我(客戶端)上傳,你(服務器)接收(RZ),我下載(客戶端),你(服務器)發送(SZ)。
5、簡單用法
| 1 2 3 4 5 6 | ###?下載一個文件:? #?sz?filename? ###?下載多個文件:? #?sz?filename1?filename2 ###?下載dir目錄下的所有文件,不包含dir下的文件夾:? #?sz?dir/* |
| 1 2 3 4 | ###?直接鍵入rz命令即可 #?rz ###?直接拖動文件到?xshell,?或者?SecureCRT?窗口即可 |
? 輸入rz回車后,會出現文件選擇對話框,選擇需要上傳文件,一次可以指定多個文件,上傳到服務器的路徑為當前執行rz命令的目錄。
6、設置默認路徑
SecureCRT:
設置上傳和下載的默認目錄:
英文版: options — session options — X/Y/Zmodem。
中文版: 選項— 會話選項— X/Y/Zmodem。
Xshell:
設置上傳和下載的默認目錄:
File -> Properties -> ZMODEM
7、操作演示(僅演示Xshell,其他類似)
rz命令(下載)
? 當我們鍵入rz命令之后,會彈出文件選擇對話框,選擇需要傳輸的文件,點擊 Add 即可。
接收的目錄就是我們當前執行rz命令的目錄。
今天又發現一個更簡單直接的方法,直接選中文件,用鼠標點住文件往Xshell里面一拖就可以了。
sz命令(上傳)
? 假設我要發送文件,直接使用sz命令, 其后接上文件名即可。同理,敲下回車后,也會彈出對話框,讓我們選擇接收的文件夾。
| 1 | [root@localhost?~]#?sz?nagios-4.0.7.tar.gz??nagios-plugins-2.0.3.tar.gz |
8、問題
xshell或者SecureCRT 啟動 tmux或screen之后,sz, rz 命令都無法彈出正常的文件選擇窗口,該如何解決?
看起來?tmux?下不支持?zmodem,所以這兩個命令也用不了。
鏈接:?http://sourceforge.net/p/tmux/tickets/6/
如果換用?screen?的話應該是可以使用 sz/rz 的,很早之前我曾在 Windows 的 SecureCRT 上面成功使用過。
需要在?.screenrc?里面設置?zmodem catch,也許還需要?rz -e。細節記得不是很清楚了。
9、缺點
? 使用lszrz非常方便,但是有一點不足之處:?無法傳輸大于 4G 的文件。
那腫么辦呢? 可以使用Filezilla, SecureFX 這些FTP工具來替代了。
from:?http://skypegnu1.blog.51cto.com/8991766/1538371
總結
以上是生活随笔為你收集整理的Linux基础:利用SSH上传、下载(使用sz与rz命令)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。