整理scp
,wget
,ftp
以及其餘Linux中經常使用的文件傳輸方式的介紹。html
當沒有安裝web server
和ftp server
的時候或感受上面的方法比較麻煩,那麼用scp
命令就會排上用場。linux
scp
是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,和它相似的命令有cp
,不過cp
只是在本機進行拷貝不能跨服務器,並且scp
傳輸是加密的。可能會稍微影響一下速度。web
一、咱們須要得到遠程服務器上的某個文件,遠程服務器既沒有配置ftp服務器,沒有開啓web服務器,也沒有作共享,沒法經過常規途徑得到文件時,只須要經過scp命令即可輕鬆的達到目的。算法
二、咱們須要將本機上的文件上傳到遠程服務器上,遠程服務器沒有開啓ftp服務器或共享,沒法經過常規途徑上傳是,只須要經過scp命令即可以輕鬆的達到目的。apache
獲取遠程服務器上的文件瀏覽器
scp root@192.168.0.223:/apps/test/a.md /Users/shui/Desktop/b.mdtomcat
root@192.168.0.223 : 使用root用戶登陸服務器192.168.0.223安全
/apps/test/a.md:本機要傳遞過去的文件服務器
/Users/shui/Desktop/b.md:遠程主機目錄網絡
獲取遠程服務器上的目錄
scp -r root@192.168.0.223:/apps/test/a /Users/shui/Desktop/b
將本地文件上傳到服務器上
scp test.txt root@192.168.0.223:/apps/test/a.txt
將本地目錄上傳到服務器上
scp -r dir1 root@192.168.0.223:/apps/test/a
當 scp 指定端口時
scp -P 2222 -r dir1 root@192.168.0.223:/apps/test/a
可能有用的幾個參數
-v 和大多數 linux 命令中的 -v 意思同樣 , 用來顯示進度 . 能夠用來查看鏈接 , 認證 , 或是配置錯誤 .
-C 使能壓縮選項 .
-4 強行使用 IPV4 地址 .
-6 強行使用 IPV6 地址 .
參考:scp 命令
Linux系統中的wget是一個下載文件的工具,它用在命令行下。對於Linux用戶是必不可少的工具,咱們常常要下載一些軟件或從遠程服務器恢復備份到本地服務器。wget支持HTTP,HTTPS和FTP協議,可使用HTTP代理。所謂的自動下載是指,wget能夠在用戶退出系統的以後在後臺執行。這意味這你能夠登陸系統,啓動一個wget下載任務,而後退出系統,wget將在後臺執行直到任務完成,相對於其它大部分瀏覽器在下載大量數據時須要用戶一直的參與,這省去了極大的麻煩。
wget 能夠跟蹤HTML頁面上的連接依次下載來建立遠程服務器的本地版本,徹底重建原始站點的目錄結構。這又常被稱做」遞歸下載」。在遞歸下載的時候,wget 遵循Robot Exclusion標準(/robots.txt). wget能夠在下載的同時,將連接轉換成指向本地文件,以方便離線瀏覽。
wget 很是穩定,它在帶寬很窄的狀況下和不穩定網絡中有很強的適應性.若是是因爲網絡的緣由下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。若是是服務器打斷下載過程,它會再次聯到服務器上從中止的地方繼續下載。這對從那些限定了連接時間的服務器上下載大文件很是有用。
下載單個文件
下載並以不一樣的文件名保存
wget -O tomcat.tar.gz http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.24/bin/apache-tomcat-8.5.24.tar.gz
後臺下載
wget -b http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
ftp 命令使用文件傳輸協議(File Transfer Protocol, FTP)在本地主機和遠程主機之間或者在兩個遠程主機之間進行文件傳輸。
FTP 協議容許數據在不一樣文件系統的主機之間傳輸。儘管這個協議在傳輸數據上提供了高適應性,可是它並無嘗試去保留一個特定文件系統上的文件屬性(例如一個文件的保護模式或者修改次數)。並且 FTP 協議不多對一個文件系統的總體結構做假定,也不提供這樣的功能,好比遞歸的拷貝子目錄。在使用 ftp 命令時,須要注意 FTP 協議的這些特性。當須要保留文件屬性或者須要遞歸的拷貝子目錄時,可使用 rcp/scp 等命令。
語法
ftp [-dignv][主機名稱或IP地址]
參數:
-d 詳細顯示指令執行過程,便於排錯或分析程序執行的情形。
-i 關閉互動模式,不詢問任何問題。
-g 關閉本地主機文件名稱支持特殊字符的擴充特性。
-n 不使用自動登錄。
-v 顯示指令執行過程。
綜上所述
各類文件傳輸方式的特徵表現各有千秋,咱們從如下幾個方面綜合對比,更深刻地瞭解它們各自的特性。
傳輸性能
wget 經過支持後臺執行及斷點續傳提升文件傳輸效率 ; rsync 則以其高效的傳輸及壓縮算法達到快傳輸的目的。
配置難度
rcp 只需進行簡單的配置,建立 .rhost 文件以及設置 /etc/hosts 文件中主機名與 IP 地址列表; wget 設置設置方便簡單,只需在客戶端指定參數執行命令便可; rsync 在使用前須要對服務端 /etc/rsyncd.conf 進行參數設定,配置內容相對複雜。
安全性能
ftp、rcp 不保證傳輸的安全性,scp、rsync 則都可基於 ssh 認證進行傳輸,提供了較強的安全保障。 wget 也可經過指定安全協議作到安全傳輸。
經過上述的對比不難發現,每種文件傳輸方法基於其自身的特色與優點均有其典型的適用場景: