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;用