SecureCRT中有以下文件傳輸協議:
① ASCII: 最快的傳輸協議, 但只能傳送文本文件;
② Xmodem: 古老的傳輸協議, 速度較慢, 但使用了CRC錯誤偵測方法, 傳輸的准確率可高達99.6%;
③ Ymodem: 是Xmodem的改良版, 使用了1024位區段傳送, 速度比Xmodem快;
④ Zmodem: Zmodem采用了串流式(streaming)傳輸方式, 傳輸速度較快, 而且還具有自動改變區段大小和斷點續傳、快速錯誤偵測等功能.
Zmodem是目前最流行的文件傳輸協議, 下述的rz/sz命令就是通過Zmodem模式傳輸文件.
1 通過rz/sz命令上傳/下載
1.1 安裝lrzsz軟件
[root@host-10-0-20-50 ~]# sudo yum install -y lrzsz
若服務器不能連接外網, 可參照 CentOS 6.5中安裝使用dstat資源統計工具 中的設置.
1.2 rz - 上傳文件
rz中的r是received(接收)的縮寫, 意為服務器接收文件(received by client), 即上傳本地文件到服務器.
鍵入rz
命令, 然后回車, 將彈出文件選擇對話框, 選擇需要上傳的文件, 可選擇多個文件.
點擊確定后即可上傳文件, 文件接收路徑為當前執行rz命令的路徑.
過程如下:
[root@host-10-0-20-50 ~]# rz
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.

注意: 上傳文件時, 如果Linux服務器接收文件的目錄下有同名的文件, 將跳過上傳過程. 信息如下:
[root@host-10-0-20-50 elk]# rz
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring elasticsearch-5.6.10.tar.gz...
elasticsearch-5.6.10.tar.gz was skipped

擴展: 使用rz會有兩個問題: 上傳中斷、上傳文件變化(md5不同). —— 尚未驗證, 請存疑.
解決辦法: 上傳時用
rz -be
, 並且不要勾選彈出的對話框中"Upload files as ASCII"前選框.-b: 用binary的方式上傳下載, 不解釋字符為ASCII.
-e: 強制escape所有控制字符, 比如Ctrl+x, DEL等.
1.3 sz - 下載文件
sz中的s是send(發送)的縮寫, 意為服務器發送文件到客戶端(send to client), 即下載服務器文件到本地.
鍵入sz download_files
命令, 然后回車, 即可將服務器中的文件下載到SecureCRT配置的目錄下:
過程如下:
[root@host-10-0-20-50 ~]# cd /data/elk
[root@host-10-0-20-50 ~]# sz elasticsearch-5.6.10.tar.gz

(1) sz
的其他用法:
sz filename # 下載一個文件
sz filename1 filename2 # 下載多個文件
sz dir/* # 下載dir目錄下的所有文件, 不包含dir下的文件夾
(2) 修改SecureCRT默認的上傳/下載目錄:
選擇菜單欄的[Options(選項)] --> [Session Options(會話選項)] --> [X/Y/Zmodem]
, 然后修改Upload/Download路徑即可.
2 通過sftp上傳/下載文件
為了數據和服務的安全, 很多生產環境中的Linux服務器不能使用外網環境. 在只有SSH連接的情況下, 傳輸文件變得很不方便.
如果Linux服務器未安裝用於上傳和下載的lrzsz軟件, 又不能現場安裝, 此時可考慮使用sftp完成相關操作.
2.1 關於SFTP的簡介
SFTP是Secure File Transfer Protocol
(安全文件傳輸協議)的縮寫, 可以為傳輸文件提供一種安全的網絡的加密方法.
不需要單獨安裝或配置sftp —— 支持SSH連接的服務器, 也就默認開啟了SFTP.
SFTP是SSH的一部分: 在SSH軟件包中, 已經包含了SFTP安全文件信息傳輸子系統.
SFTP本身沒有單獨的守護進程, 它必須使用sshd守護進程 (端口號默認是22) 來完成相應的連接和答復操作.
所以從某種意義上來說, SFTP並不像一個服務器程序, 而更像是一個客戶端程序.
2.2 SFTP與FTP的區別
① FTP是一種方便數據共享的文件傳輸協議, 包括一個FTP服務器和多個FTP客戶端. FTP客戶端通過FTP協議從服務器上下載資源.
② SFTP協議是在FTP的基礎上, 對數據采取了加密/解密技術, 使數據傳輸更安全.
③ SFTP的傳輸效率比FTP的低很多.
2.3 使用SFTP之前的工作
Windows系統下, 可以使用Core FTP、FileZilla、WinSCP、Xftp等軟件來連接SFTP進行上傳/下載文件、建立/刪除目錄等操作.
這里主要探討Linux系統下的操作.
(1) 軟件環境:
可以使用任意終端工具, 比如MacOS下的Terminal, 或iTerm(此處演示使用), 或SecureCRT.
(2) sftp
建立連接:
在終端中進行操作, 若打開SecureCRT的sftp: 菜單欄的[File] --> [Connect SFTP Session]
即可.
# 在默認的SSH端口(22)下連接:
# sftp username@remote_ip(or remote host name), 連接root用戶, 則可省略"root@".
sftp root@10.0.20.51
# 在其他端口下的連接
sftp -o port=1000 username@remote_ip
如果出現驗證, 填入正確的密碼后即可實現遠程連接. 連接成功后終端信息如圖:

2.4 sftp - 上傳文件
sftp與ftp有着幾乎相同的語法和功能:
① ls, rm, cd, mkdir, pwd 等指令是對當前連接的遠程端服務器的操作;
② lls, lrm, lcd, lmkdir, lpwd 等指令是對本地端服務器的操作 —— 在上述指令前加
l
(local)即可.
上傳操作示例:
# 默認連接的都是root目錄, 查看本地和遠端/root路徑下的文件:
sftp> lls # 本地
anaconda-ks.cfg install.log install.log.syslog porc remote.sh test.sh
sftp> ls # 遠端
anaconda-ks.cfg install.log install.log.syslog myid remote.sh test.sh
# 將本地的remote.sh文件上傳至遠端服務器的/home路徑下:
sftp> put remote.sh /home # 指定遠端接收路徑為/home
Uploading remote.sh to /home/remote.sh
remote.sh 100% 538 0.5KB/s 00:00
sftp> ls /home # 查看遠端/home路徑下的文件
/home/remote.sh
2.5 sftp - 下載文件
下載操作示例:
# 將遠端/root路徑下的myid文件下載至本地/home路徑下:
sftp> get /root/myid /home # 指定遠端文件 + 本地接收路徑
Fetching /root/myid to /home/myid
sftp> lls /home # 查看本地/home路徑下的文件
myid
如果上傳/下載的是文件夾, 在put/get命令后加上-r
參數即可.
上述操作截圖如下:

退出sftp
:
在終端輸入quit
或者exit
, 然后回車, 就能退出sftp
連接.
參考
版權聲明
作者: 馬瘦風
出處: 博客園 馬瘦風的博客
您的支持是對博主的極大鼓勵, 感謝您的閱讀.
本文版權歸博主所有, 歡迎轉載, 但請保留此段聲明, 並在文章頁面明顯位置給出原文鏈接, 否則博主保留追究相關人員法律責任的權利.