linux - sftp, scp, rz, sz(文件傳輸命令)


1. sftp

Secure Ftp 是一個基於SSH安全協議的文件傳輸管理工具。由於它是基於SSH的,會在傳輸過程中對用戶的密碼、數據等敏感信息進行加密,因此可以有效的防止用戶信息在傳輸的過程中被竊取,比FTP有更高的安全性。在功能方面與FTP很類似,不僅可以傳輸文件數據,而且可以進行遠程的文件管理(如建立,刪除,查看文件列表等操作)。Sftp與ftp雖然只有一字之差,但基於的傳輸協議卻是不同的。因此不能用sftp client去連接ftp server 也不能用 ftp client 去連接 sftp server。 

建立連接:sftp user@host
從本地上傳文件:put localpath
下載文件:get remotepath

切換遠程目錄:cd
顯示遠程工作目錄:pwd
建立遠程目錄:mkdir
與遠程相對應的本地操作,只需要在命令前加上”l” 即可,方便好記。
如:lcd l pwd l mkdir

 

2. scp

SCP :secure copy (remote file copy program) 也是一個基於SSH安全協議的文件傳輸命令。與sftp不同的是,它只提供主機間的文件傳輸功能,沒有文件管理的功能。

簡單的命令如下:

 

復制local_file 到遠程目錄remote_folder下

scp local_file remote_user@host:remote_folder

 

復制local_folder 到遠程 remote_folder(需要加參數 -r 遞歸)

scp -r local_folder remote_user@host:remote_folder

如:將本地 logs 文件夾下的所有文件復制到服務器上
scp -r /Users/lily/Desktop/test/logs root@ip:~

 

以上命令反過來寫就是遠程服務器復制到本地

如:從測試服務器復制日志文件到本地 logs 目錄下
scp user@ip:/data/app/xxx/logs/catalina.out /Users/lily/Desktop/test/logs/

 

3. scp sftp區別

 

SCP比較簡單,是輕量級的,SFTP的功能則比較多

SFTP在文件傳輸過程中中斷的話,連接后還可以繼續傳輸,但SCP不行

 

4. sz/rz

sz/rz 是基於ZModem傳輸協議的命令。對傳輸的數據會進行核查,並且有很好的傳輸性能。使用起來更是非常方便,但前提是 window 端需要有能夠支持ZModem的telnet或者SSH客戶端,例如secureCRT。

首先需要在secureCRT中可以配置相關的本地下載和上傳目錄,然后用rz、sz命令即可方便的傳輸文件數據。

 

下載數據到本地下載目錄:sz filename1 filename2 …

上傳數據到遠程:執行rz –be 命令,客戶端會彈出上傳窗口,用戶自行選擇(可多選)要上傳的文件即可。

 

注意:單獨用rz會有兩個問題:上傳中斷、上傳文件變化(md5不同),解決辦法是上傳是用rz -be,並且去掉彈出的對話框中“Upload files as ASCII”前的勾選。

-b binary 用binary的方式上傳下載,不解釋字符為ascii

-e 強制escape 所有控制字符,比如Ctrl+x,DEL等

 

sz   **** 命令,保存文件****到windows

rz  命令,會彈出窗口,選擇要上傳的文件 

如果沒有安裝,需安裝

yum install lrzsz  # centos

sudo apt-get install lrzsz # Debian 和 Ubuntu
brew install lrzsz was  # Mac OS X

 

macOS 中使用 rz、sz 傳輸文件

mac上使用rz,sz命令,mac上的終端不支持rz 和sz,所以安裝iterm並配置使用rz和cz

1、首先需要下載安裝iterm2,下載地址:下載后安裝

http://www.iterm2.cn/download

2、使用brew 安裝lrzsz

  終端輸入brew install lrzsz,如果沒有安裝homeBrew需要先安裝
   安裝完成后檢查 ls -alh /usr/local/bin/sz 是否存在

3、添加trigger

lrszs命令安裝成功之后就是要創建兩個腳本到/usr/local/bin目錄,腳本地址:

https://github.com/mmastrac/iterm2-zmodem

最后修改iterm2的配置:

 打開iterm2------  同時按 command和,鍵 -------Profiles ----------  Default ------- Advanced ------ Triggers的Edit按鈕

點擊+號,添加如下的參數,參考下圖                                                                                  

 

Regular expression: /*/*B0100

  Action: Run Silent Coprocess

    Parameters:/usr/local/bin/iterm2-send-zmodem.sh

    Regular expression: /*/*B00000000000000

    Action: Run Silent Coprocess

    Parameters:/usr/local/bin/iterm2-recv-zmodem.sh

4、使用rz,sz命令

進入到一個目錄下sz+文件名稱,可以下載一個文件,最后選擇下載到的目錄

進入到一個目錄下rz可以上傳一個文件,最后選擇上傳的文件

 

-----------------------------------------------------

 

Linux下和Windows之間的文件傳輸工具rz/sz(lrz/lsz) 介紹

 

【什么是rz/sz (lsz/lrz)】

簡單說就是,可以很方便地用這兩個sz/rz工具,實現Linux下和Windows之間的文件傳輸(發送和接收),速度大概為10KB/s,適合中小文件。rz/sz 通過Zmodem協議傳輸數據。

 

【為什么要用rz/sz】

普通Linux和Windows之間的文件共享方法,主要有建立nfs實現文件共享,和tftp之類的方法,但是都很麻煩,而如果只是小文件(幾十 K,幾百K),那么直接用rz/sz,就顯得極其地方便了。大文件的話,還是要考慮上面說得,其他的共享方法了,畢竟,rz/sz速度只有10K左右,傳大文件會累死人的。。。

 

【如何使用】

(1)在Windows下,用SecureCRT(或者Windows自帶的超級終端)連接Com端口到開發板,或者ssh等協議連接到Linux服務器上。

(2)在Linux端,安裝了rz/sz (lrz/lsz)工具后(嵌入式開發中,多數已經將編譯好的rz/sz工具放到rootfs中了,普通的Linux系統,如果沒有,可以下載源碼,自己安裝),就可以直接運行rz/sz,實現和Windows之間的文件傳輸了:

  A、從windows中拷貝/下載文件到Linux(開發板):

  運行rz后,會自動彈出WIndows下的文件選擇對話框,選擇對應文件后,添加,然后確定,就開始傳輸,將windows中的文件,拷貝到Linux中了。

  B、將Linux中的文件拷貝到Windows中某個文件夾:

  執行sz file_name 就可以將Linux當前文件夾下的文件file_name拷貝到Windows的對應目錄中了,其中,Windows目錄是由你當前運行的工具中設定的。

  此處我用的是SecureCRT,具體的更改 rz上傳/sz下載 的默認的路徑的方法:

  右鍵點擊當前會話session -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories :

  Upload : 你要設置的路徑

  Download:你要設置的路徑

 

 

參考:

【1】https://blog.csdn.net/lijianhua_showit/article/details/24292903

【2】https://blog.csdn.net/zhangjq520/article/details/85051204

 


免責聲明!

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



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