class="22378">
名稱;
mirror;-;映射在遠端節點上的檔案;
語法概述;
mirror;[旗標];-g節點:路徑名稱;
mirror;[旗標];[配置檔案];
描述;
Mirror;是以;Perl;;所寫成的一套在執行它的機器與一台遠端主機;
之間使用;ftp;;協定復制整個目錄架構及其內容的軟體。它藉由在;
傳輸之前比較檔案時間(time-stamps);以及大小來避免拷貝不必要;
的檔案。除此之外,它還可以選擇性地壓縮(compress,;gzip)以及;
分割(split)檔案。;
它是寫給檔案維護人員使用的但也可以讓任何想要經由;ftp;;傳輸;
大量檔案的人使用。;
無論如何叫用它,;mirror;總是執行相同的幾個基本步驟。它連線;
到遠端節點,在內部建立本地目標目錄(target;direction)的目錄;
列表,為遠端目錄建立一份目錄列表,比較它們,建立任何必須的;
子目錄,傳輸適當的檔案(設定它們的檔案時間以符合遠端節點上;
的檔案時間),建立任何符號鏈結,然後移除任何已不必要的物件;
(objects);最後並結束連線。;
Mirror;;可以處理符號鏈結但並非原本的鏈結。它不會復制擁有者;
(owner)或是群組(group)的資訊。如果你需要這些選項其中的任何;
一個,使用;rdist(1);來取代它。;
Mirror;系以上面所列語法概述其中的一種方法呼叫執行。;
第一種方式是用來將一個遠端目錄撷取回現行目錄。如果你要映射;
的是一個目錄,最好是以斜線('/');來結束路徑名稱這樣一來遠端;
遞回列表(包含往下子目錄的列表)會比較小或者是使用;-r;旗標;
來禁止遞回(參閱下面所述的;-g;旗標)。這個方式將不會使用到;
mirror.defaults;檔案。;
在上面所列語法概述的第二種方式裡,至少需要有一份最少數目的;
參數而且;mirror;是由從配置檔案(或標准輸入)裡讀取的設定所;
控制。如果可以在;mirror;執行檔所在目錄或是;PERLLIB;;路徑裡;
找到一個名為;mirror.defaults;;檔案,那麽它會首先被載入。這;
用來為所有的配置檔提供一般化的預設值。;
Mirror;;本來是為映射遠端;Un*x;系統的檔案而寫,但是它已逐漸;
成長(like;topsy)。;
選項;
-d;;;;;;啟動偵錯。如果下達這個參數超過一次,則偵錯層級將會;
遞增。目前有用的最大層級是四。;
-ppackage;
只映射所給定的檔案包裹(package)。;此選項可下達多次;
在這種情形下所有給定的檔案包裹都將會映射。沒有這個;
選項的話,將映射所有的檔案包裹。檔案包裹;(package);
是一個符合相對於;package;;變數的正規表示式(regexp);
-R;;;;;;類似;-p;但是跳過所有的檔案包裹直到它找到給定的檔案;
包裹為止。這對於從;mirror;執行失敗而離開的地方重新;
開始執行會有用。;
-n;;;;;;除了比較本地以及遠端的目錄之外不做任何事,不會執行;
任何檔案傳輸。將偵錯層級設為二,所以你可以看到對於;
將要執行之動作的追蹤。;
-F;;;;;;使用暫存的;dbm;;檔案以儲放關於檔案的資訊。如果你要;
映射一個非常大的目錄這會有用。參閱;use_files;;這個;
變數。;
-g節點:路徑;
取得給定節點上的所有檔案。如果路徑符合;.*/.+;;那麽;
它是目錄的名稱而後面的部份則是所要取得之檔案名稱的;
樣板(pattern)。;如果路徑符合;.*/;;則它是目錄的名稱;
而且其所有的內容都將會被撷取。另一方面路徑還是用在;
'/';的樣板。如果你使用;host:/fred;的話,那麽將作出;
一份遠端主機上之;/;;的完整目錄列表。如果所有你想要;
的是目錄;/fred;;的內容,則指定;host:/fred/;;才是。;
-r;;;;;;等於;-krecursive=false;
-v;;;;;;印出;mirror;版本資訊細節並結束。;
-T;;;;;;強制將任何本地檔案的時間重置成與遠端檔案相同。一般;
僅用於以已存在檔案內容之處初始一個映射區域的時候。;
-U[檔案名稱];
把所有上傳的檔案記錄到所給的檔案名稱。記得;;mirror;
切換到;local_dir;;以執行其作業,所以它應該得是完整;
(full)的路徑名稱。如果沒有給任何參數,其預設值為;
`pwd`/upload_log.day.month.year.;
-kkey=value;
蓋過任何預設關鍵字的值(key/value);。;
-m;;;;;;等於;-kmode_copy=true;
-t;;;;;;等於;-ktext_mode=true;
-f;;;;;;等於;-kforce=true;
-ssite;;等於;-ksite=site;
-uuser;;等於;-kremote_user=user;接著會提示你要求密碼,並且;
還會關閉本地回應(echo)以茲配合。這個密碼是用來設定;
remote_password;用的。;
-L;;;;;;只是產生一份輸入的美觀列表版本。;
-G;;;;;;從遠端機器取得檔案。本地以及遠端目錄必須在命令列上;
給定。(這個選項已經不再支援。);
-P;;;;;;把檔案放上遠端機器。本地以及遠端目錄必須在命令列上;
給定。(這個選項已經不再支援。);
-C檔案;;指定配置檔案。配合;-P;以及;-G;選項之配置檔案之需。;
(這個選項已經不再支援。);
配置檔;
配置檔會被剖析成一系列的敘述。空白行及以雜湊(hash)符號起始;
的行會被忽略。每個敘述的形式都是;
關鍵字=值;
或是;
關鍵字+值;
你可以在關鍵字以及等號/加號的前面加上空白字元。所有緊跟在;
等號/加號之後的每樣事物都是一個值,這包含任何開頭或結尾的;
空白字元。等號的版本會將關鍵字設定為該值,而加號的版本會將;
該值連結到預設值的結尾上。;
一個敘述可以在除最後一行以外使用;ampersand('&');字元作結束;
以連續超過多行。尾隨在;ampersand;;之後的行,都會以移除所有;
開頭空白字元的方式附加到目前所在行的後面。;
這裡是一份關鍵字的列表而且它們預設的值放在;square;brackets;
裡面列出。以星號標出的選項目前還沒有實作出來。;
雖然有很多關鍵字可以設定,內建的預設值將可處理大部分的情況;
。一般只需要設定;package,;site,;remote_dir;;以及;local_dir;
即可。;
package;對所要映射的檔案包裹而言應該得要是個唯一的;
名稱。[''];
comment;用在報告裡。[''];
skip;;;;設定這個項目會使得該檔案包裹被跳過。此值會;
被報告為跳過的原因。(這比;;commenting;the;
entry;out;來得容易。)[''];
site;;;;遠端節點的節點名稱或是;IP;位址。[''];
remote_dir;;;;;;所要映射的遠端目錄。參閱;recursed_hard。;
[''];
local_dir;;;;;;;本地目錄。[''];
remote_user;;;;;用在遠端節點的使用者名稱。[anonymous];
remote_password;用在遠端節點的密碼。[user@localhostname];
get_patt所要撷取之遠端路徑名稱的正規表示式。[.];
exclude_patt;;;;所要忽略之遠端目錄名稱的正規表示式。[''];
update_local;;;;把;get_patt;設為;local_dir/*。這在如果你只;
想要映射遠端檔案服務處中所選定的子目錄時會;
有用。[false];
local_ignore;;;;所要忽略之本地路徑名稱的正規表示式。對用來;
跳過受限(restricted)的本地目錄有用。[''];
do_deletes;;;;;;如果目的(destination);檔案不存在於來源樹中;
(source;tree)中則刪除之。[false];
delete_patt;;;;;檢查所要刪除之本地路徑名稱的正規表示式。不;
符合的名稱不會被檢查。所有以此樣板所選出的;
檔案都會被檢查是否符合;delete_excl;;選項。;
[.];
delete_get_patt;把;delete_patt;設為;get_patt。[false];
delete_excl;;;;;永不刪除之本地路徑名稱的正規表示式。[''];
save_deletes;;;;把本地檔案儲存到;save_dir;裡取代將其刪除。;
[false];
save_dir當本地檔案不存在於遠端節點的時候會被轉移到;
此處。[Old];
max_delete_files;
如果有超過此數的檔案會被刪除,則不進行刪除;
動作,只發出警告。若此值系以百分比字元作為;
結束的話則此值為取消刪除前之檔案的百分比。;
[10%];
max_delete_dirs;
如果有超過此數的目錄會被刪除,則不進行刪除;
動作,只發出警告。若此值系以百分比字元作為;
結束的話則此值為取消刪除前之檔案的百分比。;
[10%];
max_days如果;>0;的話,忽略比此日數更久以前的檔案。;
任何被忽略的檔案將不會被傳輸或刪除。[0];
split_max;;;;;;;如果;>0;而且檔案的大小比此值大,該檔案會被;
切割以便本地儲存(檔案名稱同時也必須要符合;
split_patt;;選項)。[0];
spilt_patt;;;;;;要儲存在本地前需先分割之遠端路徑名稱的正規;
表示式。[''];
split_chunk;;;;;檔案所要切割成的大小。[102400];
ls_lR_file;;;;;;包含;ls-lR;;的遠端檔案,否則執行遠端;ls;以;
取得目錄列表。[''];
local_ls_lR_file;
包含;ls-lR;;的本地檔案,否則使用遠端節點的;
ls_lR_file;;取代。這在第一次映射一個很大的;
檔案包裹時有用。[''];
recursive;;;;;;;執行范圍包括子目錄。[true];
recuese_hard;;;;必須對每一個子目錄執行;cwd;;以及;ls;以產生;
遠端;ls;結果。在這種情形下;remote_dir;必須;
是絕對的(從;/;;開始)而非相對的。使用;ftp;
裡的;pwd;;指令以找出遠端檔案區域之路徑開始;
處。(如果;remote_fs;是;vms;則不可使用。);
[false];
flags_recursive;傳送給遠端;ls;用