linux幾種文件傳輸方式


本文記錄linux系統中文件傳輸的多種方式,留作備忘。linux中文件傳輸的方式有ftp,scp,rsync,rz,sz等,但各個工具的功能又有所區別;

  • FTP : FTP是文件服務器,可實現文件的上傳下載,存儲等功能,但本文不打算介紹ftp的使用。
  • scp: scp能夠將不同主機的文件進行相互傳輸,使用簡單方便。
  • rz : 用於linux與windows之間的文件上傳
  • sz : 用於linux與windows之間的文件下載
  • rsync : rsync是文件同步工具,結合inotify可以實現文件的同步,備份功能。
  • scp介紹

scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨服務器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你服務器硬盤變為只讀 read only system時,用scp可以幫你把文件移出來。另外,scp還非常不占資源,不會提高多少系統負荷,在這一點上,rsync就遠遠不及它了。雖然 rsync比scp會快一點,但當小文件眾多的情況下,rsync會導致硬盤I/O非常高,而scp基本不影響系統正常使用。scp在誇機器復制的時候為了提高數據的安全性,使用了ssh連接和加密方式,如果機器之間配置了ssh免密碼登錄,那在使用scp的時候密碼都不用輸入。

  scp的安裝:文件傳輸的兩端機器都需要安裝

[root@yufu ~]# yum install openssh-clients -y

  命令格式:scp  [參數]  [本地主機文件路徑]  [遠程主機路徑]

  參數選項: 

-1  強制scp命令使用協議ssh1  

-2  強制scp命令使用協議ssh2  

-4  強制scp命令只使用IPv4尋址  

-6  強制scp命令只使用IPv6尋址  

-B  使用批處理模式(傳輸過程中不詢問傳輸口令或短語)  

-C  允許壓縮。(將-C標志傳遞給ssh,從而打開壓縮功能)  

-p 保留原文件的修改時間,訪問時間和訪問權限。  (建議使用,傳輸時保留屬性時間信息,否則會導致時間發生改變無法進行增量傳輸)

-q  不顯示傳輸進度條。  (很適合crontab任務計划中使用)

-r  遞歸復制整個目錄。  

-v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。   

-c cipher  以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。   

-F ssh_config  指定一個替代的ssh配置文件,此參數直接傳遞給ssh。  

-i identity_file  從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。    

-l limit  限定用戶所能使用的帶寬,以Kbit/s為單位。     

-o ssh_option  如果習慣於使用ssh_config(5)中的參數傳遞方式,   

-P port  注意是大寫的P, port是指定數據傳輸用到的端口號   

-S program  指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

 

  scp的使用:將本地A主機文件復制到B主機: A:192.168.214.190    B:192.168.214.187

[root@localhost tmp]#scp -p ./files/yum.log 192.168.214.187:/tmp/demo/
The authenticity of host '192.168.214.187 (192.168.214.187)' can't be established.
RSA key fingerprint is SHA256:BwJdXsDA6F5976fKx1cSxkGJ9/uYYI4zVJ2rd+/Cvj0.
RSA key fingerprint is MD5:85:87:8b:17:d2:79:c7:91:11:46:78:b3:4d:9d:dd:5a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.214.187' (RSA) to the list of known hosts.
root@192.168.214.187's password: 
yum.log                                                    100%    0     0.0KB/s   00:00    

  檢查B主機文件:

[root@yufu demo]# ls
f3.log  yum.log
[root@yufu demo]# ll
總用量 0
-rw-r--r--. 1 root root 0 3月  31 22:38 f3.log
-rw-------. 1 root root 0 3月  31 22:36 yum.log

  將遠程主機復制到本地

[root@localhost files]#scp -p 192.168.214.187:/tmp/demo/f3.log /tmp/files/
root@192.168.214.187's password: 
f3.log                                                     100%    0     0.0KB/s   00:00    
[root@localhost files]#ls
f3.log  ff.txt  yum.log

 復制目錄

[root@localhost tmp]#scp -rp ./files/ 192.168.214.187:/tmp/demo
root@192.168.214.187's password: 
f3.log                                                     100%    0     0.0KB/s   00:00    
yum.log                                                    100%    0     0.0KB/s   00:00    
ff.txt                                                     100%    5     7.3KB/s   00:00    
[root@localhost tmp]#

  檢查遠程主機目錄

[root@yufu demo]# tree 
.
└── files
    ├── app
    ├── f3.log
    ├── ff.txt
    └── yum.log

2 directories, 3 files

 

  • rz  sz (lrzsz)

    rz  sz指令可以實現linux和windows之間的文件傳輸,但要求在windows客戶端要安裝Xshell或SecureCRT遠程連接工具。

rz指令和sz指令是一對上傳與下載的指令。它們的軟件包名為lrzsz。

  rz  sz指令使用很簡單,執行rz 指令,遠程連接工具會彈出windows文件選擇窗口,只要選擇要上傳的文件即可

  工具的安裝: 

yum install lrzsz -y

  文件上傳: 

 

 

  文件下載:

 

  • rsync

rsync是可以實現增量備份的工具。配合任務計划,rsync能實現定時或間隔同步,配合inotify或sersync,可以實現觸發式的實時同步。rsync可以實現scp的遠程拷貝,cp的本地拷貝、rm刪除和"ls -l"顯示文件列表等功能。關於rsync的使用將單獨寫文章學習介紹。


免責聲明!

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



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