由 xlwcat 在 10-06-2002 00:24 发表:
架设FTP服务器 来源:天津热线[转帖]
架设FTP服务器 来源:天津热线[转帖] 在Internet上FTP(File Transfer
Protocol,文件传输协议)扮演着十分重要的角色。我们可以通过FTP与远程机器传输交换文件数据,下载或上传最新的软件。基本的FTP服务器根据服务的对象可以分为两种,一种是Unix(当然也包括Linux)系统基本的FTP服务器,使用者是服务器上合法的用户;而另一种是匿名FTP服务器(Anonmous
FTP Service),任何人只要使用anonmous或ftp帐号并提供电子邮件地址作为口令就可以使用FTP服务。
对于系统中合法的用户,其登录目录为他们的home目录;如果是匿名用户登录的话,登录后会到/home/ftp这个目录中,该除非我们在该目录中存放下载文件,否则匿名FTP使用者将不能做任何事情。在本章,我们将详细地介绍FTP服务器的安装、配置以及服务器的维护。
安装FTP服务器 在Linux的发行套件中都有FTP服务器的软件包wu-ftpd(Washington University FTP
server),这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,而wu-ftp如此流行的原因是因为它强大的功能,例如:
·可控制不同网域的机器对 FTP服务器的存取权限和访问时段。
·使用者在下载文件时,可自动对文件进行压缩或解压缩工作。
·可以记录文件上传或下载的过程。
·可以限制最高访问人数,以维持系统的最佳运行效率。
·可显示相关的信息,以便用户了解当前的接收状态。
·可暂时关闭FTP服务器,以便系统维护。
在安装系统时如果选择了wu-ftpd软件包,就会自动安装。但如果我们想要使用最新的FTP软件包的话,可以到全世界各大FTP站点下载。目前最新的版本是wu-ftpd-2.5.0,得到了wu-ftpd-2.5.0.tar.gz后,请按照我们下面的步骤进行安装。
1.将wu-ftpd-2.5.0.tar.gz复制到临时目录中并解压缩:
tar zxvf wu-ftpd-2.5.0.tar.gz
进入解压缩产生的目录wu-ftpd-2.5.0中,在开始安装之前请仔细阅读里面的README、INSTALL等文件,以便了解安装需要注意的事项。
2.执行命令“bulid lnx”,编译wu-ftpd-2.5.0的源程序。
./bulid lnx
这条命令将编译Linux系统使用wu-ftpd所需的服务程序,如果一切正常的话,将产生如下几个可执行文件:
ftpd FTP服务程序
ftpshut 关闭FTP服务的程序
ftpcount 显示FTP 服务器目前连接的人数的程序
ftpwho 查看目前使用者
3.执行安装命令“make install”,将编译生成的可执行文件和man pages安装到系统中。
make install
4. 修改/etc/inetd.conf文件,加入如下一行:
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l –a
如果系统中以前安装有wu-ftpd的话,这一步可以略去不做,安装安装程序会自动更新/etc/inetd.conf文件有关ftp的记录项。
5.如果想为FTP用户提供压缩解压缩的功能,我们还需要将tar、gzip、compress、cpio、sh等可执行文件复制到/home/ftp/bin目录下。此外,还需要将ls命令复制到/home/ftp/bin中,以便使用者查看目录。
因为我们复制到/home/ftp/bin目录下的程序有可能是动态链接的,所以它们运行时还需要共享函数库,我们要将他们运行时需要用到的共享库复制到/home/frp/lib目录中。检查这些命令所需要的共享库可以使用“ldd”命令。例如对于“ls”命令,我们使用“ldd
/usr/bin/ls”命令就可以得到如下的输出:
ldd /usr/bin/ls
libc.so.6 = > /lib/libc.so.6 ( 0x40003000 )
/lib/ld-linux.so.2 = > /lib/ld-linux.so.2 ( 0x00000000 )
这样,我们就需要将/lib/libc.so.6和/lib/ld-linux.so.2复制到/home/ftp/lib目录中。其它命令所需的共享库您也可以参照上面的方法找出并复制到/home/etc/lib目录中。
接下来复制/etc/passwd和/etc/group文件到/home/ftp/etc,并删除其中任何个人用户和个人用户组的信息。基本上应该按照下面的例子修改:
#/home/ftp/etc/passwd文件
root:*:0:0:::
bin:*:1:1:::
operator:*:11:0:::
nobody:*:99:99:::
ftp:*:1000:1000:::
/home/ftp/etc/group文件
root::0:
bin::1:
daemon::2:
sys::3:
adm::4:
ftp::1000:
6.为了确保提供FTP服务不会给我们的系统带来安全隐患,我们还需要采取以下措施:
chmod 0555 /home/ftp
chmod 0111 /home/ftp/bin/*
chmod 0555 /home/ftp/lib/*
chmid 0444 /home/ftp/etc/*
配置FTP服务器在安装好wu-ftpd之后,我们还需要定制FTP服务器,使之实现我们上一节中提到的各种功能。为了使我们的FTP服务器实现这些功能,我们需要修改ftpusers、ftpaccess、ftpconversions、xferlog、ftpgroups、ftphosts等系统配置文件。下面我们就来看一看这些文件的功能以及配置它们的方法。
各配置文件的功能在开始配置FTP服务器的配置文件之前,我们先来简要地介绍一下各个文件的功能。在开包后的wu-ftpd-2.5.0目录中的doc/examples目录下,我们可以找到以下这些文件的示例。
/etc/ftpaccess
一般情况下,我们最为重视的配置文件应该是“ftpaccess”,因为该文件决定着我们FTP服务器是否能够正常工作。此外,我们还可以在这个系统参数文件中设置多项有关使用权限记录,以及与信息有关的文件名称及路径。
/etc/ftpusers 决定哪些人不可以执行ftp命令来传输文件,这些帐号通常是root、bin、news以及guest等有特殊用途的帐户。
/etc/ftpconversions 配置该文件可以实现用户在通过FTP传输文件的同时,对文件进行压缩打包等处理。
/etc/ftphosts 决定哪些网络中的主机或某些用户不能访问FTP服务器的文件。
/etc/ftpgroups 该文件不是决定哪些用户组不能够访问FTP服务器,它只有在使用SITE GROUP功能时才有用。
/var/log/xferlog FTP日志文件。该文件将记录使用匿名帐户的用户所上传或下载的过的文件,该文件只是记录FTP信息,我们不需要对它进行配置。
大致了解了各个设置文件的功能以后,我们就来为您介绍这些文件中的内容以及学习如何配置。
配置/etc/ftpaccess文件我们前面介绍的wu-ftpd的大多数功能都是在ftpaccess文件中设置的。我们无须自己编写该文件,doc/examples/ftpaccess.heavy是一个稍微修改一下就能适用于大多数FTP服务器的例子,所以下面我们将以这个示例文件为例为您介绍ftpaccess文件的配置。
wu-ftpd-2.5.0的/etc/ftpaccess示例文件ftpaccess.heavy
设置用户登录FTP服务器时,允许输错密码的次数。
loginfails 2表示允许用户输错两次密码,如果两次都输入
错误的话,FTP服务器打印“repeated login failures”的信息
并退出FTP会话过程。如不设置,则缺省值是5。
loginfails 2
class是用来定义用户级别的命令,它的格式为
class
1<class> <typelist> <addrglob> [ <addrglob>….]
2
3# FTP服务器上有三种类型的使用者,分别是“real”——表示
4
5# 在该FTP服务器上有合法帐号的用户;“guest”——表示另行
6
7# 定义的某些使用组的使用者;“anonymous”——权限最低的匿名
8
9# 用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不
10
11# 同的使用者设置不同的存取权限。但是,只有三种定义一般是不够
12
13# 的,我们可以根据class的语法定义更多的控制命令。例如:
14
15# class remote real,guest,anonymous *
16
17# 这条class语句定义了remote中有三种不同的使用者,“*”表示网络
18
19# 上所有的计算机,也就是说任何人都可以访问FTP服务器,一般的匿名
20
21# FTP站点都应该有这一项。如果我们希望某台主机或网域中的机器具有
22
23# 特殊的权限,那么我们可以设置如下的class:
24
25# class local real,guest,anonymous localhost
26
27# 这表示本地主机的类别被定义为local,当我们从主机连上FTP服务器上
28
29# 时,就可以用较为特别的权限。
30
31# 下面是ftpaccess.heavy文件指定的两个class,它们的意思是来自*.domain
32
33# 和本地主机被归为local组,而其它的主机则是remote组。
34
35#
36
37class local real,guest,anonymous *.domain 0.0.0.0
38
39class remote real,guest,anonymous *
40
41#
42
43# 我们可以使用limit命令设置某个时间段的FTP用户数量,如果超出了
44
45# 规定的人数,则打印/etc/msgs/msgs.toomany文件并拒绝用户登录。例如:
46
47# limit local 20 Any /etc/msgs/msgs.roomany
48
49# 就是限制local这个组的机器同时间内最多允许20人连接FTP服务器,如果
50
51# 超员,则打印/etc/msgs/msgs.toomany文件,显示当前在线人数太多。ftp的
52
53# 说明文件都可以包含变量,在说明文件中可以使用“变量替换(magic
54
55# sookies)”以指定的字符串代替某个变量:
56
57# %T 本地时间
58
59# %F CWD所在分区的剩余空间
60
61# %C 当前工作目录
62
63# %E 定义在ftpaccess文件中维护者的电子邮件地址
64
65# %R 远端主机名称
66
67# %L 本地主机名称
68
69# %U 登录时所给的用户名称
70
71# %M 该class允许的最大使用者数目
72
73# %N 该class目前的使用者数目
74
75#
76
77# 我们可以利用这些变量编辑一个显示信息非常完y
78
79#
80
81# readme命令的作用是指定用户登录或进行其它操作(如更换目录)时
82
83# FTP服务器提示用户阅读的文件。
84
85#
86
87readme README* login
88
89readme README* cwd=*
90
91#
92
93# messages命令主要是设置一些FTP的显示信息,如下面的“message
94
95# /welcome.msg login”就是代表用户登录时,将显示/home/ftp目录下的
96
97# welcome.msg作为进站画面。我们要提醒您的是FTP服务器都是以
98
99# /home/ftp这个目录作为根目录的,所以要写成/welcome.msg。而
100
101# “message .message cwd=*”则是定义用户在更换目录时将显示在目录
102
103# 下的文件。
104
105#
106
107message /welcome.msg login
108
109message .message cwd=*
110
111#
112
113# 下面定义的允许从local和remote登录的机器在传输文件时,可执行compress
114
115# 压缩文件或使用tar命令将多个文件打包成一个文件。
116
117#
118
119compress yes local remote
120
121tar yes local remote
122
123#
124
125# 是否允许通过SITE GROUP和SITE GPASS命令适用秘密文件
126
127# allow use of private file for SITE GROUP and SITE GPASS?
128
129#
130
131private yes
132
133#
134
135# 设置密码检查的规则。FTP服务器将要求匿名用户使用其电子邮件
136
137# 地址作为密码,可是有人还是会胡乱输入,所以我们可以使用passwd-check
138
139# 来查看用户是否输入一个类似于user@hostname的E-mail地址:none表
140
141# 示不进行密码检查; trivial表示密码必须含有“@”;而使用rfc822时,
142
143# 表示密码必须满足rfc822规定的地址。当密码不合要求时,warn将给予
144
145# 警告,但依然允许他们登录,而enforce则表示警告并使用户退出。
146
147#
148
149# passwd-check <none|trivial|rfc822> [<enforce|warn>]
150
151passwd-check rfc822 warn
152
153#
154
155# log commands <typelist>记录<typelist>类型(可以是anonymous、
156
157# guest和real)用户使用的命令。Log transfer <typelist> <directions>
158
159# 记录<typelist>类型的用户做的<directions>(可以为inbound传进服务器、
160
161# outbound传出服务器)方向的文件传输。
162
163#
164
165log commands real
166
167log transfers anonymous,real inbound,outbound
168
169#
170
171# 如果shutdown<path>指定的文件存在,FTP服务器将定期检查<path>文件
172
173# 以查看服务器是否预定关闭。<path>文件的格式为:
174
175# <year> <month> <day> <hour> <minute> <deny_offset> <disc_offset> <text>
176
177# <deny_offset>和<disc_offset>的意思是在服务器关闭前多长时间新的登录
178
179# 请求和现存的连接将被拒绝和终止。<text>是对拒绝连接的用户的一段信息。
180
181# 如:
182
183# 1999 10 25 00:00 0010 0005
184
185# System shutdown at %s
186
187# 表示1999年10月25日00:00关闭FTP服务器,10分钟以前拒绝连接,5分钟
188
189# 以前中断正在连接的FTP服务。外部程序ftpshut可以用来产生<path>文件,
190
191# 例如上面的文件可以通过如下的命令来产生:
192
193# ftpshut 0000
194
195#
196
197shutdown /etc/shutmsg
198
199#
200
201# 设置用户在FTP服务器上可以使用的命令,我们可以看到下面所有的
202
203# 命令后面都是“no”,也就是说guest用户不能使用delete、overwrite、
204
205# rename命令,而anonymous则都不能使用。只有real用户可以使用这些命令。
206
207# all the following default to "yes" for everybody
208
209#
210
211delete no guest,anonymous # delete permission?
212
213overwrite no guest,anonymous # overwrite permission?
214
215rename no guest,anonymous # rename permission?
216
217chmod no anonymous # chmod permission?
218
219umask no anonymous # umask permission?
220
221#
222
223# 设置用户上传文件的目录。下面例子中/var/ftp目录下的/incoming目录可以
224
225# 用来上传文件,上传文件的属主是root,组别是daemon,读取权限是0600,
226
227# dirs表示在/incoming目录中可以创建子目录。
228
229# specify the upload directory information
230
231#
232
233upload /var/ftp * no nobody nogroup 0000 nodirs
234
235upload /var/ftp /bin no
236
237upload /var/ftp /etc no
238
239upload /var/ftp /incoming yes root daemon 0600 dirs
240
241#
242
243# 为/incoming目录设置路径别名为inc:,用户在任何时候只要使用命令
244
245# “cd inc:”就可以到达/incoming目录。
246
247# directory aliases... [note, the ":" is not required]
248
249#
250
251alias inc: /incoming
252
253# cdpath主要定义在改变目录时使用的搜索路径。如果我们定义:
254
255# cdpath /incoming/test、cdpath /pub、cdpath /,那么用户在任意路径
256
257# 随便cd到一个目录,比如cd test,那么将依次搜寻:
258
259# /incoming/test
260
261# /pub/test
262
263# /test
264
265# 以寻找一个符合test目录的路径。
266
267#
268
269cdpath /incoming
270
271cdpath /pub
272
273cdpath /
274
275#
276
277# path-filter的功能是检查用户上传文件的文件名是否合法,如下面
278
279# 第一条命令就是指定所有的匿名用户上传文件的文件名只能是以
280
281# A-Z、a-z、0-9以及“._-”组成,而不能以一个“.”或是一个“-”开始。
282
283# 如果文件名不合法,将显示/etc/pathmsg给该用户。
284
285#
286
287path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_ .]*$ ^ . ^-
288
289path-filter guest /etc/pathmsg ^[-A-Za-z0-9_ .]*$ ^ . ^-
290
291#
292
293# 设置guest用户
294
295# specify which group of users will be treated as "guests".
296
297#
298
299guestgroup ftponly
300
301#
302
303# FTP服务器管理员的邮件地址
304
305#
306
307email user@hostname
308
309以上是一些ftpaccess常用的设置,您也可以参考ftpaccess的man pagse来获得更详细的配置信息。
310
311配置/etc/ftpusers和/etc/ftphosts文件通过ftpusers文件,我们可以限制系统中有哪些用户不能使用ftp服务,ftphosts文件与之类似,所不同的是该文件中记录的是不能访问FTP服务器的主机。通常这样做的目的都是出于系统安全的考虑。Wu-ftpd为我们准备有这两个文件的示例,我们可以在examples
312
313目录中找到它们。下面是ftpusers文件设置的例子:
314
315# 禁止使用FTP服务的用户
316
317root
318
319bin
320
321boot
322
323daemon
324
325digital
326
327field
328
329gateway
330
331guest
332
333nobody
334
335operator
336
337ris
338
339sccs
340
341sys
342
343uucp
344
345限制这些用户使用FTP服务器主要是基于系统安全的考虑,避免权利过大的用户(如root、ftpadm)登录FTP服务器和避免使用系统命令作为帐号(如shutdown、sync),以避免系统管理上的困惑。我们可以根据自己使用的需要,向该文件中增加或删除用户并将它复制到/etc目录中。
346
347如果我们要架设的是匿名FTP服务器,那么通常不需要设置ftphosts文件,对于其它类型的FTP服务器可以参考examples/ftphosts文件的格式结合自己的情况加以修改,然后复制到/etc目录中即可。下面是examples/ftphosts文件,该文件允许网络somehost.domain中的用户ftp访问FTP服务器(somehost.domain可以是IP地址或域名)而禁止网络otherhost.domain和网络131.211.32.*中的用户fred使用FTP服务。
348
349#
350
351# ftphosts文件配置示例,allow和deny的格式分别为:
352
353# allow <username> <hostname domain="" or="">
354
355# deny <username> <hostname domain="" or="">
356
357#
358
359# 以“#”开头的均为注释,空行将被忽略
360
361#
362
363allow ftp somehost.domain
364
365deny fred otherhost.domain 131.211.32.*
366
367配置/etc/ftpconversions文件
368
369ftpconversions文件主要定义用户从FTP服务器中下载文件时对文件进行格式转换的规则。例如压缩、解压缩、打包和开包等操作,这样用户就不必为.tar.gz、.tgz、.Z、.z之类的文件伤脑筋了。Ftpconversions文件的格式初看上去很复杂,不过不用担心,/examples目录中也有该文件的例子,我们只要原封不动的将它复制到/etc目录中就能满足我们的使用需要了。下面让我们来看看ftpconversions文件中各个记录项,有关各项的说明我们罗列在表14-1中:
370
371#
372
373# ftpconversions文件示例
374
375#
376
377#
378
379:.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
380
381: : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
382
383:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
384
385: : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
386
387: : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
388
389: : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
390
391: : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
392
393: : :.crc:/bin/cksum %s:T_REG::CKSUM
394
395: : :.md5:/bin/md5sum %s:T_REG::MD5SUM
396
397表1 ftpconversions文件各项说明对照表
398
399真实文件名目标文件名命令操作 <filename>.Z <filename> 传递前使用comprss –d命令压缩 <filename>.gz
400
401<filename> 传递前使用gzip –d命令压缩 <filename> <filename>.Z 传递前使用compress 命令压缩
402
403<filename> <filename>.gz 传递前使用gzip –9命令压缩 <filename> <filename>.tar 传递前使用tar
404
405–cf命令打包 <filename> <filename>.tar.Z 传递前使用tar –cZf命令打包并压缩 <filename>
406<filename>tar.gz 传递前使用tar –czf命令打包并压缩 <directory> <directory>.tar.Z 传递前使用tar
407
408–cZf命令对目录打包并压缩 <directory> <directory>.tar.gz 传递前使用tar –czf命令对目录打包并压缩
409
410Ftpconversions文件基本上把常用的压缩,打包命令都包括在内了,我们只要将它复制到/etc目录中,以后只要有人访问我们的FTP服务器,FTP服务程序就会根据用户的需要执行压缩或打包的命令。例如,用户想下载目录Howto中所有的文件,那么他不必使用mget命令,而只要使用get
411
412Howto.tar.gz,这时wu-ftpd就会将该目录打包压缩并发送到用户的机器上了。所以使用该文件可以完成压缩传递的数据量,减少传输时间等作用。此外ftpconversions文件中定义的可执行文件的位置/bin指的都是/home/ftp/bin而不是Lnux
413
414/目录下的bin,所以请检查/home/ftp/bin目录中有无上述命令,如果没有还需要将这些程序复制到该目录中。
415
416截止到这里,匿名FTP服务器的架设工作基本上就完成了,我们可以用ftp命令连接自己的服务器,检查合法用户和匿名用户的连接情况以及各个目录的权限是否正确。之后就可以准备FTP服务的开张了。
417
418FTP镜像站点的维护架设FTP服务器的目的是要在服务器上存放一些共享或自由软件让用户下载,然而各式各样的软件总是处在不断升级换代的过程中,为了能让用户经常光临我们的服务器,我们应该经常维护FTP服务器,使我们拥有最新版本的软件。
419
420获得软件的方法之一是自己动手在各大FTP站点上搜寻下载,这种方法在我们所关注的软件数目不多、软件更新速度不太快的情况下还可以应付。但是当要维护一个具有软件种类繁多,数量庞大的大型FTP服务器时,这样做就不但费时费力,而且容易出错,因而也就不适合了。另一种投机的办法是使用一些镜像软件,如mirror、ftpmirror等等。有了它们,我们可以在对存放某些常用软件的FTP站点的相应目录在本地建立镜像目录,这些软件可以运行在后台并定期对远程FTP站点进行定期检查,如果发现远程目录下的文件有所更新,则立即对本地目录中相应的文件进行更新,而对远程目录中未作更新的文件在本地则不做任何处理,这样就避免了不必要的重复传输。
421
422Mirror最早是由Lee
423
424McLoughlin用Perl语言编写的一种perl脚本。最初,mirror只能运行在Unix系统上,但是从2.9版本以后,该软件也可以运行于Windows95和Windows
425
426NT系统上。mirror的功能主要是在本地端主机与远程主机之间使用FTP通信协议,并复制远程主机上的整个目录结构以及其中的内容。所以mirror在传输文件之前,会比较文件建立的时间和文件的大小,以避免拷贝不必要的文件。如果本地和远程主机的目录中有相同文件名的文件则不读取,或指定读取文件名含有特殊字符串的文件等功能。除此之外,mirror还可以选择性的压缩以及分割文件,所以mirror非常适合任何想通过FTP站传输大量文件的人使用。下面我们将介绍mirror的安装和使用。
427
428mirror的安装因为mirror是用perl脚本编写的脚本文件,所以在安装mirror之前,我们必须确保系统中已经安装有perl(perl命令通常位于/usr/bin目录下)。目前各种发行版本的Linux都随盘附有perl程序的软件包,如果系统中没有安装的话,可以从光盘中安装,或直接去 www.perl.com下载最新的perl软件。
429
430安装好perl之后,就可以开始安装mirror了。目前最新的mirror的版本是mirror-2.9(需要4或更高版本的perl程序),我们可以去下列站点下载:
431
432ftp://sunsite.org.uk/packages/mirror/mirror.tar.gz ; (http方式)
433
434ftp://sunsite.org.uk/packages/mirror/mirror.zip (http方式,for Windows的mirror)
435
436我们可以到下面的站点查看是否有更新的版本出现:
437
438http://sunsite.org.uk/packages/mirror/
439
440下面是我们列出的一些mirror的镜像站点,您可以根据您的情况选择离您内较近,下载速度较快的站点来下载:
441
442USA ftp://ftp.cs.columbia.edu/archives/perl/mirror/
443
444Poland ftp://giswitch.sggw.waw.pl/pub/unix/mirror/
445
446Japan ftp://SunSITE.sut.ac.jp/pub/archives/packages/mirror/ (http方式)
447
448将下载的mirror-2.9.tar.gz复制到一个合适的目录,如/usr/local/lib然后解压缩:
449
450# cp mirror-2.9.tar.gz /usr/local/lib
451
452# cd /usr/local/lib
453
454# tar zxvf mirror-2.9.tar.gz
455
456开包以后,就会生成mirror/这个目录。因为mirror是一个脚本,所以不需要编译,我们直接就可以拿来使用。Mirror其实是一个链接文件,它link到文件mirror.pl,在使用mirror之前,我们建议您最好将mirror.pl文件中的“$extra_path”和“$big_temp”这两个变量所指定的路径该成符合您的系统需要,如:
457
458$extra_path=/usr/local/bin:/usr/bin:/bin;/usr/ucb:/etc:/usr/etc/:/usr/local/etc’;
459
460$big_temp=’/var/tmp’;
461
462之后使用“ln”命令将mirror.pl这个perl脚本链接到/usr/local/bin目录中:
463
464# ln –s /usr/local/lib/mirror/mirror.pl /usr/local/bin/mirror
465
466这样mirror就安装完毕了。
467
468mirror的使用调用mirror有两种方式:
469
470# mirror [参数] -gsiteathname
471
472# mirror [参数] [package-files]
473
474第一种方法是复制远程主机上的一个目录到本地主机用户当前所在目录。第二中方式是由mirror读取我们编辑的配置文件(package-files),根据我们在该文件中的设置复制远程主机的目录文件到我们设定的目录中。在我们下达mirror命令的目录中如果有mirror的配置文件mirror.defailt存在的话,则执行mirror时会首先载入该文件中的内容为所有其它的配置文件提供初始化设置,所以我们需要修改mirror.defaults文件的内容,一般需要修改以下几个地方:
475
476hostname 本地主机名
477
478local_dir 本地下载文件存放目录
479
480remote_password 设置登录用的密码,通常使用完整的E-mail地址
481
482虽然mirror有很多的命令行参数,但是它们中的大多数可能只会用到一两次。如果我们打算维护一个镜像站点,那么最好的做法是将所有的细节问题都记录在配置文件package
483
484file中,然后再运行mirror读取该文件中的内容。我们最常用的参数可能是-n和-d。下面就来看看mirror的各种参数:
485
486-d 允许以调试方式运行mirror。如果使用该参数超过一次,那么调试的等级就会递增(例如:-d –d )。目前支持的最大调试等级是四级。
487
488-n 只是比较本地目录与远程目录的不同,不会进行任何文件传输。请将调试等级设为2级,这样我们就可以看到mirror工作的过程。
489
490-g siteath
491
492节点:路径。取得给定节点上path中的所有文件。在path的后面需要加上“/”,否则我们得到的只是该mirror目录的一份目录列表,而不是整个目录中的所有文件。
493
494-p package
495
496当使用多个package文件时。只选用给定的package。我们可以多次使用该选项,以使我们选定的packages都可以被mirrored,如果不使用该参数,那么将mirror载入所有的packages文件。
497
498-R package
499
500与-p参数类似</directory></directory></directory></directory></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></filename></hostname></username></hostname></username></path></text></disc_offset></deny_offset></text></disc_offset></deny_offset></minute></hour></day></month></year></path></path></path></directions></typelist></directions></typelist></typelist></typelist></enforce|warn></none|trivial|rfc822></addrglob></addrglob></typelist></class>