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