兩臺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 地址 |
舉例說明
- 把計算機名為“v111.nn”下所有的東西都拷貝到本機/home/admin/目錄下
scp -r * v111.nn:/home/admin/
- 以admin的身份把IP地址為“192.168.219.125”,/home/admin/test目錄下所有的東西都拷貝到本機/home/admin/目錄下
scp -r admin@192.168.219.125:/home/admin/test /home/admin/
參考
rsync差異化傳輸(支援斷點續傳,資料同步)
rsync -av /backup/ -e ssh [email protected]192.168.1.110:/bak
-a: archive歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,連結等,等於-rlptgoDrsync——remote sync。
rsync是linux系統下的檔案同步和資料傳輸工具,它採用“rsync”演算法,可以將一個客戶機和遠端檔案伺服器之間的檔案同步,也可以在本地系統中將資料從一個分割槽備份到另一個分割槽上。
如果rsync在備份過程中出現了資料傳輸中斷,恢復後可以繼續傳輸不一致的部分。rsync可以執行完整備份或增量備份。
它的主要特點有:
-
可以映象儲存整個目錄樹和檔案系統;
-
可以很容易做到保持原來檔案的許可權、時間、軟硬連結;無須特殊許可權即可安裝;
-
可以增量同步資料,檔案傳輸效率高,因而同步時間短;
-
可以使用rcp、ssh等方式來傳輸檔案,當然也可以通過直接的socket連線;
-
支援匿名傳輸,以方便進行網站鏡象等;
-
加密傳輸資料,保證了資料的安全性;
管道傳輸(降低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