您好,登錄后才能下訂單哦!
本篇內容主要講解“兩臺Linux間傳輸文件的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“兩臺Linux間傳輸文件的方法是什么”吧!
兩臺Linux系統之間要想傳輸文件可以采用的方式有很多種,比如scp傳輸、rsync差異化傳輸、nc傳輸等。
當兩臺LINUX主機之間要互傳文件時可使用SCP命令來實現
scp傳輸速度較慢,但使用ssh通道保證了傳輸的安全性
將本地文件拷貝到遠程
scp 文件名 –用戶名@計算機IP或者計算機名稱:遠程路徑
從遠程將文件拷回本地
scp –用戶名@計算機IP或者計算機名稱:文件名 本地路徑
命令格式
scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_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 remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder
第1個指定了用戶名,命令執行后需要再輸入密碼;
第2個沒有指定用戶名,命令執行后需要輸入用戶名和密碼;
例子
scp -r /home/space/music/ root@www.cumt.edu.cn:/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 -av /backup/ -e ssh root@192.168.1.110:/bak
-a: archive歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,鏈接等,等于-rlptgoDrsync——remote sync。
rsync是Linux系統下的文件同步和數據傳輸工具,它采用“rsync”算法,可以將一個客戶機和遠程文件服務器之間的文件同步,也可以在本地系統中將數據從一個分區備份到另一個分區上。
如果rsync在備份過程中出現了數據傳輸中斷,恢復后可以繼續傳輸不一致的部分。rsync可以執行完整備份或增量備份。
它的主要特點有:
可以鏡像保存整個目錄樹和文件系統;
可以很容易做到保持原來文件的權限、時間、軟硬鏈接;無須特殊權限即可安裝;
可以增量同步數據,文件傳輸效率高,因而同步時間短;
可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;
支持匿名傳輸,以方便進行網站鏡象等;
加密傳輸數據,保證了數據的安全性;
gzip -c sda.img | ssh root@192.168.1.110 "gunzip -c - > /image/sda.img"
對sda.img使用gzip壓縮,-c參數表示輸出到stdout,即通過管道傳送
gunzip -c – 中的”-“表示接收從管道傳進的sdtin
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每次都需要輸入密碼,用起來感覺不是很方便,之前這篇筆記介紹過不用輸入密碼執行腳本或傳輸文件的方法,但對于一些臨時性的任務,準備工作還是比較麻煩。
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 | 輸出交互或出錯信息,新手調試時尤為有用 |
經過上面對nc的簡介,估計不少同學已經知道怎么用nc來實現兩臺機器間的文件傳輸了。這里對實現流程做簡單說明。
nc -l -p 8210 > demo.txt # 在本機8210端口偵聽TCP連接,將收到的數據寫入文本文件 nc -l -p 8210 > demo.tar.bz2 # 在本機8210端口偵聽TCP連接,將收到的數據寫成壓縮文件
nc dest_ip 8210 # 向ip為dest_ip的機器的8210端口發送demo.txt文件 nc dest_ip 8210
接收方:nc -v -l -p 8210 發送方:nc -v dest_ip 8210
注意:使用nc傳文件時,需注意操作次序,receiver先偵聽端口,sender向receiver所在機器的該端口發送數據。否則發送失敗。
除了上面集中傳輸文件的方式之外,還可以通過簡歷文件服務器,然后通過網絡掛載的方式傳輸,這種適用于經常性的拷貝,下面是一個掛載ftp服務器的例子
掛載ftp服務器
yum install curlftpfs mkdir /data/ftp curlftpfs username:password@ftp.yourdomain.com /data/ftp
到此,相信大家對“兩臺Linux間傳輸文件的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。