1. 程式人生 > >兩臺linux之間傳輸檔案的方法

兩臺linux之間傳輸檔案的方法

scp傳輸

當兩臺Linux主機之間要互傳檔案時可使用SCP命令來實現

scp傳輸速度較慢,但使用ssh通道保證了傳輸的安全性

複製檔案

  • 將本地檔案拷貝到遠端

scp 檔名 –使用者名稱@計算機IP或者計算機名稱:遠端路徑

  • 從遠端將檔案拷回本地

scp –使用者名稱@計算機IP或者計算機名稱:檔名 本地路徑

命令格式

scp local_file [email protected]_ip:remote_folder 
或者 
scp local_file [email protected]_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 

第1,2個指定了使用者名稱,命令執行後需要再輸入密碼,第1個僅指定了遠端的目錄,檔名字不變,第2個指定了檔名;
第3,4個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第3個僅指定了遠端的目錄,檔名字不變,第4個指定了檔名;

複製目錄

  • 將本地目錄拷貝到遠端

scp -r 目錄名 使用者名稱@計算機IP或者計算機名稱:遠端路徑

  • 從遠端將目錄拷回本地

scp -r 使用者名稱@計算機IP或者計算機名稱:目錄名 本地路徑

命令格式

scp -r local_folder [email protected]_ip:remote_folder 
或者 
scp -r local_folder remote_ip:remote_folder 

第1個指定了使用者名稱,命令執行後需要再輸入密碼;
第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼;

例子

scp -r /home/space/music/ [email protected]:/home/root/others/ 
scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/ 

引數詳解

引數 描述
-a 儘可能將檔案狀態、許可權等資料都照原狀予以複製
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地
-f 若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行復制
-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來檢視連線 , 認證 , 或是配置錯誤
-C 使能壓縮選項
-P 選擇埠 . 注意 -p 已經被 rcp 使用
-4 強行使用 IPV4 地址
-6 強行使用 IPV6 地址

舉例說明

  1. 把計算機名為“v111.nn”下所有的東西都拷貝到本機/home/admin/目錄下
scp -r * v111.nn:/home/admin/ 
  1. 以admin的身份把IP地址為“192.168.219.125”,/home/admin/test目錄下所有的東西都拷貝到本機/home/admin/目錄下
scp -r  admin@192.168.219.125:/home/admin/test  /home/admin/

scp示例

參考

rsync差異化傳輸(支援斷點續傳,資料同步)

rsync -av /backup/ -e ssh [email protected]192.168.1.110:/bak

-a: archive歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,連結等,等於-rlptgoDrsync——remote sync。

rsync是linux系統下的檔案同步和資料傳輸工具,它採用“rsync”演算法,可以將一個客戶機和遠端檔案伺服器之間的檔案同步,也可以在本地系統中將資料從一個分割槽備份到另一個分割槽上。

如果rsync在備份過程中出現了資料傳輸中斷,恢復後可以繼續傳輸不一致的部分。rsync可以執行完整備份或增量備份。

它的主要特點有:

  1. 可以映象儲存整個目錄樹和檔案系統;

  2. 可以很容易做到保持原來檔案的許可權、時間、軟硬連結;無須特殊許可權即可安裝;

  3. 可以增量同步資料,檔案傳輸效率高,因而同步時間短;

  4. 可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket連線;

  5. 支援匿名傳輸,以方便進行網站鏡象等;

  6. 加密傳輸資料,保證了資料的安全性;

管道傳輸(降低IO開銷)

gzip -c sda.img | ssh [email protected]192.168.1.110 "gunzip -c - > /image/sda.img"

對sda.img使用gzip壓縮,-c引數表示輸出到stdout,即通過管道傳送

gunzip -c - 中的”-“表示接收從管道傳進的sdtin

nc傳輸(一種網路的資料流重定向)

nc所做的就是在兩臺電腦之間建立tcp或udp連結,並在兩個埠之間傳輸資料流,是一種網路的資料流重定向

使用dd結合nc命令網路克隆磁碟分割槽

主機:

dd if=/dev/vda | gzip -c | nc -l 50522

待恢復機:

nc 192.168.215.63 50522 | gzip -dc | dd of=/dev/sda

dd命令克隆/dev/vda磁碟,並使用gzip壓縮,把資料流重定向到本機50522埠,待恢復機上使用nc連線主機50522埠,就能接收主機50522埠的位元資料流,然後使用gzip解壓縮,並恢復到/dev/sda磁碟

dd命令讀取的是磁碟扇區,所以不論磁碟檔案系統,或者分割槽表,磁碟MBR資訊,dd都能夠複製,可以使用bs,count引數控制要克隆的大小

例如dd bs=512 count=1 if=/dev/vda of=mbr.img 只複製磁碟vda的第一個扇區512K位元組資料(載入程式和分割槽表)

通常,可以用scp完成兩臺主機間的檔案傳輸任務,但在主機間未建立信任關係的情況下,scp每次都需要輸入密碼,用起來感覺不是很方便,之前這篇筆記介紹過不用輸入密碼執行指令碼或傳輸檔案的方法,但對於一些臨時性的任務,準備工作還是比較麻煩。

what is nc ?

nc是netcat的簡寫,關於nc是什麼,man如是說:arbitrary TCP and UDP connections and listens

nc可以方便地實現任意TCP/UDP埠的偵聽,連線的建立,埠的掃描,等等。也即,nc既可以作為server以TCP或UDP方式偵聽指定埠,也可以作為client發起TCP連線或方式UDP包。下面要介紹的技巧就是藉助其TCP連線來實現主機間檔案傳輸的。

nc的控制引數不少,常用的幾個引數如下所列:

備註:nc要連線的目的埠可以是具體的整數,也可以直接通過服務名指定,這種情況下,nc會負責將name對映至某個well-known port(可用cat /etc/services檢視這些埠跟服務名的對映關係)

引數 描述
-l 用於指定nc將處於偵聽模式。指定該引數,則意味著nc被當作server,偵聽並接受連線,而非向其它地址發起連線
-p port 指定nc要使用的埠。若之前已指定-l,則這裡的-p指定具體的偵聽埠;若未指定-l,則表示向這個埠發起連線
-s hostname/ip-address 指定傳送資料的源IP地址,適用於多網絡卡機器
-u 指定nc使用UDP協議,預設為TCP
-v 輸出互動或出錯資訊,新手除錯時尤為有用

use nc to transmit data between hosts

經過上面對nc的簡介,估計不少同學已經知道怎麼用nc來實現兩臺機器間的檔案傳輸了。這裡對實現流程做簡單說明。

在資料接收方的機器上偵聽指定埠

nc -l -p 8210 > demo.txt        # 在本機8210埠偵聽TCP連線,將收到的資料寫入文字檔案
nc -l -p 8210 > demo.tar.bz2    # 在本機8210埠偵聽TCP連線,將收到的資料寫成壓縮檔案

在資料傳送方機器上向指定地址(ip+port)以TCP方式傳送資料

nc dest_ip 8210 < demo.txt      # 向ip為dest_ip的機器的8210埠傳送demo.txt檔案
nc dest_ip 8210 < $(tar -jcvf demo.tar.bz2 demo.txt) # 壓縮後傳送

-v打印出錯資訊

接收方:nc -v -l -p 8210  
傳送方:nc -v dest_ip 8210

注意:使用nc傳檔案時,需注意操作次序,receiver先偵聽埠,sender向receiver所在機器的該埠傳送資料。否則傳送失敗。

建立檔案伺服器

除了上面集中傳輸檔案的方式之外,還可以通過簡歷檔案伺服器,然後通過網路掛載的方式傳輸,這種適用於經常性的拷貝,下面是一個掛載ftp伺服器的例子
掛載ftp伺服器

yum install curlftpfs
mkdir /data/ftp
curlftpfs username:[email protected] /data/ftp

nfs實現檔案共享

相關推薦

linux之間傳輸檔案方法

scp傳輸 當兩臺Linux主機之間要互傳檔案時可使用SCP命令來實現 scp傳輸速度較慢,但使用ssh通道保證了傳輸的安全性 複製檔案 將本地檔案拷貝到遠端 scp 檔名 –使用者名稱@計算機IP或者計算機名稱:遠端路徑 從遠端將檔案拷回本地 scp –使用者名稱

linux之間拷貝檔案(簡單高效)

將檔案從本地拷貝到伺服器:將當前目錄下的filename檔案拷貝到遠端伺服器192.168.2.208的/home/username/Documents下,如果不用root可能由於許可權不夠,無法拷貝。如果出現 filename下有很多子檔案,用scp –r [email&#

不用U盤,用一根網線在電腦之間傳輸檔案

有一次要給朋友傳一部電影恰好沒有帶U盤,而且又不能上網,不知道怎麼辦。後來就上網搜尋加自我摸索,總結了一些方法。只要你身邊有一條網線或者你們的電腦處在同一個局域網裡,就可以實現傳輸資料。下面是我總結的一些方法。 前提:用網線將兩臺電腦連線起來,並設定成同一個區域網(如把A

如何快速在電腦之間傳輸檔案

兩臺電腦如何傳檔案最快方法。我們在使用電腦的時候,有的情況下需要我們隊兩臺電腦之間互相的傳輸大檔案。那麼我們應該通過什麼樣的方法傳輸最快速呢?我們一起來看看吧。   首先我們需要一根平時上網連線網路時用的網線。   網線的兩端分別連線在你的兩臺電腦網線插口處。   連線好了之

伺服器之間拷貝檔案-scp方法

不同的Linux之間copy檔案通常有5種方法1.ftp 2.samba服務 3.sftp 4.scp 5.rsync 以上前三種方法,都比較繁瑣,這裡不贅述。最簡單的方法就是scp,可以理解為ssh管道下的cp命令。 把當前一個檔案copy到遠端伺服器上: scp

WIN10之間共享檔案的一些坑

 兩臺WIN10之間共享檔案有兩個步驟。 準備工作                確保兩臺電腦在同一個區域網內,可以用網線相連,也可以連結到同一個路由器。 步驟一:在A電腦設定共享檔案(夾)                  (1)右鍵要共享的檔案(夾)-->“

如何在個伺服器之間傳輸檔案或者資料夾?(埠相同與不同的情況)

1、從本機傳輸檔案到另外一個伺服器: scp  -P 8122 /home/helpteach/project/mallupload/1509681299449.png [email protected]:/home/test ps:-P 8122指的是接受檔案

linux之間實現共享資料夾掛載例項

今天研發給我反應了這樣一個需求: 我計劃由一臺伺服器上的resin服務受理使用者上傳的檔案,這臺伺服器受理到檔案之後儲存在本地。 由另外一臺伺服器上的java應用程式來讀取這些檔案進行處理。 我覺得這是一個類似windows在區域網共享資料夾的操作。又想起來以前曾經把win

使用SecureCRT的SFTP命令列在WINDOWS與LINUX之間傳輸檔案

背景:   有一臺主機,安裝了windows7,在其安裝了virtualbox,然後安裝了ubuntu虛擬機器。在windows7上安裝SecureCRT來ssh連線ubuntu虛擬機器。一般在windows上面下載軟體,然後通過vsftp上傳到ubunt

linux之間複製檔案及目錄

Linux為我們提供了兩個用於檔案copy的命令,一個是cp,一個是scp,但是他們略有不同,cp 主要是用於在同一臺電腦上,在不同的目錄之間來回copy檔案 scp 主要是在不同的Linux系統之間來回copy檔案。scp即security cp,帶有安全性的複製。 在

區域網內地電腦如何傳輸檔案

兩臺電腦都設定網路共享選項 控制面板\網路和 Internet\網路和共享中心\高階共享設定下面開啟網路發現和開啟檔案和印表機共享 PC1設定共享資料夾 (右鍵屬性\共享) pc2 通過 \pc1n

如何用一根網線實現在電腦之間傳輸資料

下面我來說一說怎樣用一根網線連線兩臺電腦,從而實現資料的傳輸。 首先,我們要在兩臺電腦上分別設定其IPv4的配置。 第一臺電腦的設定步驟如下: 開啟網路和共享中心 ,點選更改設配器設定,在乙太網那裡右鍵屬性, 雙擊Internet 協議版本4(TCP/I

【技術問題】用SVN在PC之間實現檔案同步

1. 搭建SVN Server在用作伺服器的PC上下載SVN Server(按照紅框一步一步下載): http://subversion.apache.org/packages.html找到SVN fo

用rz,sz命令在windows和linux之間傳輸檔案

轉自http://www.linuxmine.com/178.html有很多人沒有聽說過ZModem協議,更不知道有rz/sz這樣方便的工具; 下面一段是從SecureCRT的幫助中copy的:ZModem is a full-duplex file transfer pr

Linux系統之間傳輸檔案的幾種方法

scp傳輸 當兩臺LINUX主機之間要互傳檔案時可使用SCP命令來實現 scp傳輸速度較慢,但使用ssh通道保證了傳輸的安全性 複製檔案 將本地檔案拷貝到遠端 scp 檔名 –使用者名稱@計算機I

linux伺服器之間檔案傳輸

scp是secure copy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system時,用scp可以幫你把檔案移出

Linux服務器之間的文件傳輸

date shell腳本 color path 日期格 targe 目錄 get remote 最近工作中有這樣一個需求,需要將A服務器上的文件傳到B服務器。 本來想用Java開發,但一想Java開發周期長,應對這樣一個小需求沒必要用Java,最後選擇了Shell腳本,相關

linux之間copy傳輸檔案方法

不同的Linux之間copy檔案通常有4種方法 1.ftp 2.samba服務 3.sftp 4.scp 前三種方法都比較繁瑣,最簡單的方法就是scp 命令scp 介紹 scp 本地使用者名稱@IP地址:檔名1 遠端使用者名稱@IP地址:檔名2   [本地使用者名稱@IP地

linux伺服器相互拷貝檔案方法

scp是secure copy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system時,用scp可以幫你把檔案

Linux利用socket實現pc之間的資料傳輸功能,包括windows到linux,UDP實現

makefile 和TCP一樣,參見上一篇博文 客戶端和服務端主函式也和上一篇的tcp是一樣的,同樣參考上一篇博文,這裡只是修改了pub.c的檔案了 /* * pub.c * * Created on: 2016年7月14日 * Author: Admi