引言
最近一直是在用SecureCRT和MobaXterm對服務器進行維護,前者是因為工作需要,后者是個人喜好。我記得在去年我寫過一篇用MobaXterm對阿里雲服務器進行相關的部署,那篇博文里也談及了我從xshell和mobaxterm中最終選擇了后者,其實直到目前,我依然喜歡用MobaXterm,因為簡單高效。本篇博文將列舉我今天做的一個功能,對代碼進行備份並上傳到服務器,也可以說成是上傳文件和下載文件,另外解讀一下其意思
rz與sz命令
linux下通過rz、sz命令進行上傳下載很方便,不需要其他的sftp、winscp等軟件,而sz和rz命令的原理其實是來源於下面四個東西:1.XModem,YModem,ZModem,KERMIT,類似於一種演化過程。
它們都是文件傳輸協議,四者的比較如下:
-
XModem是一種發送等待(send-and-wait)協議, 具有流量控制功能。數據長度為128字節。
-
YModem是XModem的改進版。它可以傳送多個文件,數據長度可達1K字節且支持16位CRC校驗。
-
ZModem不但具有糾錯功能,而且是一種流式協議。它不再以收方發ACK引導。
-
KERMIT類似於XModem,但它對XModem進行了改進,可以傳輸多個文件,錯誤檢測方式明顯改善。同時KERMIT還提供壓縮功能。
zmodem是現在已經升級比較多版本比較新的協議。最早還有xmodem和ymodem協議,現在我們利用zmodem協議它的速度會快一點,所以我們主要考慮zmodem,另外SecureCRT已經幫我們集成好了zmodem,而MobaXterm對zmodem支持較差,或者說沒有支持,下面我們會詳細說明。
然后我們就可以安裝着兩條命令包,相應的命令為:
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
./configure && make && make install
- 1
- 2
- 3
上面安裝過程默認把lsz和lrz安裝到了/usr/local/bin/目錄下,現在我們並不能直接使用,下面創建軟鏈接,並命名為rz/sz:
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
- 1
- 2
- 3
然后我們就可以使用sz和rz命令了。
SecureCRT命令使用
因為SecureCRT集成好了zmodem協議,所以我們可以通過其直接設置我們默認的上傳和下載文件路徑,比如我這邊使用的默認配置:
那么當我使用sz下載Linux服務器上的文件時,它就會下載到我Windows下的C:\Users\xuzhenggen\Downloads文件夾下:
上傳同樣,secureCRT會彈出一個文件框,那么只需要點擊上傳文件就OK了。
MobaXterm上下文件
mobaXterm備份文件和上傳文件的方式和其它的有所不同,因為它本身不怎么支持zmodem協議,所以我們即使下載了sz、rz命令包,當我們在命令行中運行這兩個命令時,就會出現很多bug,比如:
雖然同樣顯示了文件正在下載,但之后就會一直卡在這里不動了,甚至說ctrl+c強制退出也作用不大,然后我就重新連接該服務器了,不知道它到底有沒有下載文件到某路徑,這里因為我沒有找到設置路徑在哪,所以不清楚具體流程,那么就直接當它下載失敗了。
很顯然,MobaXterm在這里出現了缺點,那么就是對zmodem支持差,其它的我暫時沒找到什么缺點了,但其實它自己本身就可以直接下載與上傳文件,不需要通過zmodem協議,或者說FTP,因為它的左邊即能顯示連接服務器下所有的文件夾以及相應的目錄,我們只需要點擊右鍵,或者說拖動文件直接拉進行去就能完成文件的更新操作了。
同樣能完成對文件的下載,操作直接Windows化了,另外上傳拖拽,那么就不需要我說明了。所以,不得不說mobaxterm方便。