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, <new dir,/home/user/tmp/user></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壓縮。