linux幾種文件傳輸方式

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

  • 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的時候密碼都不用輸入。shell

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

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

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

  參數選項: 服務器

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

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

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

-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的使用將單獨寫文章學習介紹。

相關文章
相關標籤/搜索