天天看點

Linux下主機間檔案傳輸指令

scp 指令在網絡上的主機之間拷貝檔案,它是安全拷貝(secure copy)的縮寫。 scp 指令使用 ssh 來傳輸資料,并使用與 ssh 相同的認證模式,提供同樣的安全保障。

如果有公鑰打通就不用密碼,如果沒有就會提示輸入密碼。

<code>1</code>

<code>#copy 本地檔案 /etc/eva.log, 到遠端機器 sysb, 使用者 user 的家目錄下</code>

<code>2</code>

<code>scp</code> <code>/etc/eva</code><code>.log user@sysb:</code><code>/home/user</code>

<code>3</code>

<code>#copy 遠端機器 sysb 上的檔案 /home/uesr/eva.log, 到本地的 /etc 目錄下 , 并保持檔案屬性不變</code>

<code>4</code>

<code>scp</code> <code>-p user@sysb:</code><code>/home/uesr/eva</code><code>.log </code><code>/etc</code>

<code>5</code>

<code>#copy sysb 上的目錄 /home/user, 到本地 /home/user/tmp, &lt;new dir,/home/user/tmp/user&gt;</code>

<code>6</code>

<code>scp</code> <code>-r user@sysb:</code><code>/home/user</code> <code>/home/user/tmp</code>

-r

表示遞歸

-p

port 指定端口

表示保留原來的檔案屬性,比如建立時間等。

一個網頁爬取程式。 可實作遞歸下載下傳,即可跟蹤 html 頁面上的連結依次下載下傳來建立遠端伺服器的本地版本,完全重建原始站點的目錄結構,實作遠端網站的鏡像。在遞歸下載下傳時,wget 将頁面中的超級連結轉換成指向本地檔案,友善離線浏覽。

wget [options] [url-list]

 遞歸下載下傳伺服器上所有的目錄和檔案。由 -l 選項來指定遞歸深度。

-b

背景下載下傳

-c

指定斷點續傳功能。該功能要求伺服器支援斷點續傳。

-i

指定下載下傳目錄清單,可實作批量下載下傳

rsync是一個同步指令,即讓兩個主機的某些檔案保持同步。通常用于備份。

<code>rsync</code> <code>main.c machineb:</code><code>/home/userb</code>

這是最常見的用法,同步兩個檔案。

隻要目的端的檔案内容和源端不一樣,就會觸發資料同步,rsync會確定兩邊的檔案内容一樣。

使用-t選項後,rsync會将源檔案的“modify time”同步到目标機器。可能有坑,時間戳相同但是檔案不同。

保資料的一緻性,挨個檔案發起同步。

-v

讓rsync輸出更多的資訊,v越多輸出越詳細。

-z

壓縮,預設gzip。

netcat,在網絡工具中有“瑞士軍刀”美譽。因為它短小精悍,功能實用,被設計為一個簡單、可靠的網絡工具,可通過tcp或udp協定傳輸讀寫資料。

這裡,我們使用它來在linux主機間傳輸檔案。其實,nc隻是個傳輸字元的工具,是以我們還需要其它工具來配合。

假設,我們要把檔案夾data從a機器傳輸到b機器。a機器的ip為192.168.0.1

我們先在a機器上運作:

<code>tar -cvzf - /data | nc -l 6666</code>

這是在a機器上,打開6666端口,并将data目錄的檔案打包,以位元組流的方式發送到這個端口。

然後,在b上讀取a主機的6666端口的位元組流,通過tar反向解包出檔案。

<code>nc 192.168.0.1 6666| </code><code>tar</code> <code>-xvzf - -c </code><code>/tmp</code>

這個傳輸的通道還是壓縮了的。tar的參數中,-z是打包後用gzip壓縮。

繼續閱讀