Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5359739
  • 博文数量: 1144
  • 博客积分: 11974
  • 博客等级: 上将
  • 技术积分: 12312
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-13 20:06
文章存档

2017年(2)

2016年(14)

2015年(10)

2014年(28)

2013年(23)

2012年(29)

2011年(53)

2010年(86)

2009年(83)

2008年(43)

2007年(153)

2006年(575)

2005年(45)

分类: LINUX

2006-02-07 17:53:47

一份不可多得的Linux 网管资料B
                                      

Linux 网管 123 --- 第7章. 自订的组态及管理内容 -7.使用 Linuxconf

使用 Linuxconf 进行所有的组态

有一个相当好的工具叫做 ``linuxconf'' ,可以使得很多组态工作容易进行。Linuxconf
可以根据可供利用的显示方式而执行 -- 可以从主控台中执行,透过一个 telnet session,
或者在 X 下作为以 GUI-为基础的工具,且会以合适的方法自动启动。
如果您需要调整系统时间,变更网路设定,设定档案系统,进行使用者管理,以及进行很多其
他的组态及管理工作,您应该试试这个软体。我应该给您的唯一警告是,在写这篇文章的时候,
以GUI-为基础的工具仍有一点问题并且有时会对滑鼠的点选没有反应。然而,这个工具的发展很
有前途,且在未来的修正後会变得更稳定。

Linux 网管 123 --- 第8章. 备份及回存程序 -1.伺服器备份程序


进行一般的备份应该是负责任的系统管理者的最高优先考虑。虽然 Linux 是一个高度可靠的作业系统,
系统失效仍然可能发生。可能因为硬体故障,电源中断,或其他不可预料的问题。
更常见的这些问题是来自人为的错误,不当的变动,甚至因为删除重要的档案。如果您负责管理系统上的用户,
一定可能常被要求重建因为不小心误删的档案。

如果您进行一般备份,以每日为基础较好 (至少对更动频繁的使用者档案),您将会有助於减少档案的损失,并
且增加复原程度。

最安全的备份方法是将他们纪录於不同的媒体中,例如磁带,抽取式硬碟,可写式 cd .等。 然後将您的备份
和您的 Linux系统分开存放。有时候这可能并不实际 -- 也许在您可以存放备份磁带的地方没有防火室 ! 或是
在第一优先的地点没有办法存取这样的外部备份系统。虽然如此,仍然可以进行备份,只是会受到一点限制。

在我服务的单位,我在几个 Linux 系统上进行备份。按情况的不同,有些备份存放在磁带,其他则写入位於网
路上的不同伺服器中,然而有一些仍然使用 cron 自动作业 (可能因为伺服器位在远端,在那里每天进行磁带
备份是不切实际或不可能的),简单的放在分别不同磁碟上的分割区中 (例如,放在 ``/archive/'' 档案系统) 。

在家里,我没有外部的备份系统,我也没有大量的磁碟空间去存放备份影像档。因此,我改为只备份在
``/home/'' 的我的使用者档案,同样的还有一些在 ``/etc/''的自订设定档,将备份存放在分别不同的磁碟
分割区中。


伺服器备份程序


进行Linux备份有几种不同的方法,其中包括所有 Linux 发行版本中都有的命令列工具,例如 ``dd'',
``dump'', ``cpio''以及 ``tar''。其他还有文字型态工具,例如 ``Amanda'' 及 ``Taper'',这些是被设计
来在备份及回存过程中加入更友善的使用者介面。当然也有图形介面的工具,像是``KDat''。最後,还有商业
化的备份工具,像是 ``BRU'' 和 ``PerfectBackup+''。这些备份计划中任何之一都足以提供您宝贵资料的保护。
这里有一些包括哪里可以获得工具的列表,可以在“Linux Applications and Utilities Page”找到,位於
. 当决定好备份方式,您可能要考虑下列几点因素:

可携性 - 备份的可携性 (亦即. 从一个 Linux 发行版本或应用 Unix备份然後回存到另外一个; 例如从
Solaris 到 Red Hat Linux) 对您而言是否重要 ? 如果是,可能想要选择一个命令列的工具 (亦即. ``dd'',
``dump'', ``cpio'', 或 ``tar''),因为您可以相当地确定该工具可以在另一个 *nix 系统上找到。
无人或自动备份 - 定期自动进行备份而不需人力介入之能力,对您而言是否重要 ? 如果是,您可能需要能支
援该方案的工具及备份媒体。
使用者友善 - 使用者友善的介面对您而言是否重要 ? 如果是,您可能想要选择一个文字或图形介面的工具。商
业的应用程式可以提供最简便的介面及技术支援。
远端备份 - 从远端机器进行备份及回存的能力对您而言是否重要 ? 如果是,您可能想要选择命令列或文字模式的
工具而不是图形介面(除非您有相当快的网路连结及执行远端 X sessions 的能力)。
网路备份 - 从网路主机进行备份及回存对您而言是否重要 ? 如果是,您可能要用一些支援从网路存取备份设备的
命令列工具(像是 ``tar''),或是专用工具程式例如 ``Amanda'' 或是一些商业工具程式。
媒体型态 - 备份可以储存在很多不同的媒体,像是磁带,外接式硬碟,ZIP 磁碟,或可读写 CD。考虑售价及可靠
性,储存容量,及传送速度。
警告: 当备份您的系统时, 不要包括 ``/proc'' 伪装档案系统 ! /proc 中的档案并非真的档案,而仅是看起来
像档案的描述,而且指向核心资料结构的连结。备份 ``/proc/kcore'' ,这事实上这是一个伪装档案,包含记忆
体中所有的资料,会浪费很多的磁带 ! 您可能也需要避免备份 ``/mnt'' 档案系统,除非您有从 CD-ROM,
软碟机,网路分享档案,或其他安装设备上备份的特殊需求。

明显地,备份及回存的过程会因您所选择的备份方法而有所不同。然而,在这一节,我将会讨论我最常使用的两种
工具备份的方法 : ``tar'' (其名称源於“Tape ARchiver”),这是一个命令列式的工具,在 *nix 系统中具有很
高的可携性 ; 以及 ``KDat'',一个来自於 KDE 套件的图形介面磁带备份工具 (参考 第5章, KDE 的安装及组态
有更多有关KDE的资讯)。


最後,我应该补充一点,依您所选择的备份方式,即使该工具没有建立於自动备份时间表上的能力,您仍然可以
利用 cron 功能进行该自动备份。 参考 第9章,使用Cron 和 Crontab 档进行自动作业 有关使用 cron 的细节以
及如何建立 crontab 行程表档案。

使用 ``tar''备份:
如果您选择 ``tar'' 作为您的备份方案,您可能要花点时间去了解种种的指令选项 ; 键入 “man tar” 有更深
入的明细。您还需要了解如何存取适当的备份媒体 ; 虽然在 Unix 的世界中对待所有的装置就像处理档案一样,
如果您写入到一个字元设备像是磁带,“档案”的名称就是设备本身的名称 (亦即. ``/dev/nst0'' 是一个
SCSI介面的磁带机)。
下面的指令会将您的整个 Linux 系统备份於 ``/archive/'' 档案系统,除了 ``/proc/'' 伪装档案系统,
``/mnt/'', ``/archive/'' 档案系统 (没必要备份我们的备份档 !),还有 Squid 很大的快取资料档 (是的,
依我之见,浪费备份媒体而且不需要去备份)之外的任何已挂载的档案系统 :
tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`.tar.gz \
--directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid .

不要被上面的指令吓到 ! 当我们将其分为两部分,您将会发现这个强力工具之美。

上列的指令指定了选项 ``z'' (压缩; 备份资料经由 ``gzip''压缩), ``c'' (建立; 一个 archive 档开始被建立),
``v'' (verbose; 显示出已经备份好的档案), ``p'' (允许保存;保护的资料将会被 “记忆” ,可以被回复)。
``f'' (档案) 选项後面接的是的要写入的 archive 档 (或装置)名称,注意包含资料的档名是如何得到的,只
要用两个後引号将``date'' 指令圈起来。 一般的命名惯例是在未压缩过的档案後面加上 `` .tar'' ,压缩的
档案加上 ``tar.gz''

``--directory'' 选项告知 tar 在开始备份前首先跳到以下的档案路径 ( 在本例中是``/''目录 )。 ``--exclude''
选项告知 tar 不要备份所指定的档案或目录。最後, ``.'' 符号告知 tar 要备份目前目录中的所有东西。
注意: 有一点很重要必须了解的就是 tar 的选项是大小写不同的 ! 此外,大部分的选项可以用助记符号加以
简化(亦即. ``f''), 或者使用较易记忆的选项全名 (亦即. ``file'')。 助记符号前用一个``-'' 字元作为
字首作为辨识,在全名的前面有两个这种符号的字首。再一次,参考 “man”页以得到更多有关使用 tar 的资
讯。


另一个例子,这一次只有写入指定的档案系统 (和上一个除了例外全部写入的例子相反) 到一台 SCSI 的磁带机 :
tar -cvpf /dev/nst0 --label="Backup set created on `date '+%d-%B-%Y'`." \
--directory / --exclude=var/spool/ etc home usr/local var/spool

在上面一行的选项,注意没有用到 ``z'' (压缩) 选项。我强烈建议反对写入压缩资料到磁带上,因为如果磁带上
资料有一部份损坏,您会失去整个备份 ! 然而,未压缩的储存的 archive 档具有很高的可恢复性,即使磁带上的
档案有一部份损毁。

因为磁带机是一个字元设备,没有办法指定一个确实的档名。因此,指定给 tar 的档名可简化为装置名称,
``/dev/nst0'',是在 SCSI 排汇上的第一个磁带设备。
注意: ``/dev/nst0'' 设备在备份做好後不会回带 ; 因此有可能将好几组备份写到同一磁带。(您也可以选择
``/dev/st0''这个装置,在这种情形磁带在备份完後会自动回带)


既然我们无法对一套备份指定档名, ``--label'' 选项可以来写进档案本身一些有关这一套备份的资讯。

最後,只有包含在 ``/etc/'', ``/home/'', ``/usr/local'', 及 ``/var/spool/'' (除了 Squid 的 快取资料档)
会写进磁带。

当使用磁带时,可以使用下列命令回带,以及退出磁带:
mt -f /dev/nst0 rewind
mt -f /dev/nst0 offline

小技巧: 您将会发现到当 archive 档建立时,前面的``/'' (斜线) 符号会被 tar 去除。这是 tar 的预设操作
模式, 这是故意用来保护您避免覆写这些重要档案的原先版本,以防万一您不慎在重建过程中覆写了不正确的档案。
如果您真的不喜欢这个特性 (记住,这是特性!) 您可以指定 tar ``--absolute-paths'' 选项,这样会保留前面的
斜线。然而,我不建议这样做,因为很危险 !


使用``KDat''备份:
如果您使用 KDE 桌面环境,我相信您会发现``KDat'' 公用程式不但强大而且对使用者很友善。此外,另一个好处是
KDat 利用``tar'' 作为其备份 engine。因此,用 KDat 写入的备份组不但可以用 KDat 读取,也可以用 tar ! 这
使得 KDat 成为在使用者友善及备份可携性中很好的选择。
小及巧: 即使您决定不使用也不安装完整的 KDE 套件,如果您安装了 Qt 函式馆就仍然可以使用KDE。

当您第一次执行 KDat,您需要建立一个备份 profile。这个 profile 告诉 KDat 您想要备份系统中的哪些档案。如
果您要的话,您可以建立好几个备份 profile,依照您的需求 (例如,您可以建立一个 profile 叫做“Full Backup”
作系统的完全备份,或是 “Quick Backup”只备份使用者的档案)。

要建立备份 profile,可以选择从选单栏中“File”选项选择“Create Backup Profile” (或在“Backup Profiles”
文件夹上按滑鼠右键,然後选择 “Create Backup Profile”)。在右手边的是 KDat 视窗,您可以改变各种设定,
像是profile 名称,archive 名称, tar 选项, 以及其他的。单击 “Help” 选单有关於这些设定的用途说明。

要指定哪些档案应该包含在您的 backup profile, 在 ``/'' 目录文件夹旁的核对图示上敲一下左键。这会确定所有
的档案及这个目录下所有东西都会备份。然後,在文件夹旁的小 ``+''符号上敲一下左键,资料夹会展开,显示档案及
以下的目录。您可以排除掉所不想备份的档案;只要在您想排除的每一个档案或目录旁的核对符号上敲一下左键。例如,
一个完全备份应该包含已标记的所有档案及目录,要排除 ``/proc'' (一个伪装档案系统,包含您目前运作系统的资料),
``/mnt'' ( 位於CD-ROM下面的目录,软碟机,网路分享常被挂载在此),而且如果您是 Squid 使用者,
``/var/spool/squid'' (Squid的快取资料档)。一旦您选好了合适的档案,在您建立好的备份 profile 上按一下左键,
然後在“Files >>” 钮上按一下左键将选好的档案移进您的备份 profile。
注意: 如果您的伺服器资料到巨大到无法实际存放到磁带中,您需要建立分别的备份 profiles,备份组中每部份一个。


实际进行备份时,将磁带放入,从 “File” 选单中选择 “Mount Tape” (或是用滑鼠敲一下看起来像磁带的图示)。
这样会 “挂载” 磁带 (事实上,因为磁带机是字元装置,事实上无法挂载它 -- 其实 KDat 只是先回带,试着去读取
开头资讯,如果成功,找寻磁带机上符合的索引。否则,KDat 会提醒您格式化磁带。
(注意: 如果 KDat 持续反映没有磁带在磁带机但事实上有,您应该确定在参数中指定的磁带机名称正确,在选单栏
中用滑鼠敲一下 “Edit” 选项然後选择“User Preferences”.)


一旦 KDat 已经挂载好磁带,在您开始备份前必须选择备份的 profile。当打算开始备份,只要在您要的备份 profile
上敲一下右键,然後在“Backup”上敲一下左键。KDat 会先显示一个对话框告诉您有关您所选择备份 profile 的细节 ;
在“Ok” 上敲一下左键就会开始备份。

当备份开始进行,KDat 会显示一个有各种状态资讯的对话框 (经过时间,备份大小,备份比率,估计剩馀时间,档案数
量及总共写入 bytes 数),以及已经备份档案的列表。一个包含好几 gigabyte 资料的完全备份可能需要花上好几个小时。
必要的话,在备份过程中任何时候您可以在“Abort” 钮上敲一下左键放弃备份。

一旦备份完成,您可以在选单栏中选择 “Edit”,再选 “Unmount Tape”以解挂载磁带,或在磁带图示上敲一下,这
样磁带会回带然後跳出。

Linux 网管 123 --- 第8章. 备份及回存程序 -2.伺服器回存程序(tar.KDat)

无疑地, 比例行备份更重要的事就是当问题发生後能让重要档案正常回复 !
明显地,就像 伺服器备份程序 所讨论的,进行回存的程序依您所选择的备份方案而有所不同。在这一节,
我将会讨论由 ``tar'' 及 ''KDat''所备份的回存方法。

使用 ``tar'' 回存:
下面的指令会从 ``full-backup-09-October-1999.tar.gz'' 回存所有的档案,这是我们 Linux 系统的备份
例 (按照在 使用``tar'' 备份 一节中的命令例所做的):
tar -zxvpf /archive/full-backup-09-October-1999.tar.gz


上面的命令会从 archive 档中取出所有的档案,保留原档案的拥有者及权限。 ``x'' 选项用来作解出
(其他的选项在 使用``tar'' 备份 这节中有提到:)

警告: 从一个 tar 的 archive档中解出档案可能是一件危险的事,因此必须谨慎进行。也许这些档案作
时并未包括准备好的路径 (有一些被误导或未被告知的发展者散他们的档案时可能会这样),表示档案会
被解到目前的目录下。也许档案压缩时有加上 ``/'' 斜线 (当备份档建立时指定 ``--absolute-paths'' 选项),
表示档案会被回存到绝对位置 (即使您不愿意)。或者也许档案压缩时未加上 ``/'' 斜线, 表示档案会被解到
目前的目录下 (即使您不愿意这样)。当然,全看备份是如何建立的。因为这个缘故,我强烈建议先在 ``tar''
命令加上``t'' (type) 选项加以测试,然後当您完全确定命令会依您预期进行後将 ``t'' 换成``x'' (extract) 。

如果您不需要回存 archive 中所有的档案,您可以指定一个或更多的档案,按照下面例 :
tar -zxvpf /archive/full-backup-09-October-1999.tar.gz \
etc/profile usr/local/bin/tolower


上面的命令会从例的档案回存 ``etc/profile'' 及 ``usr/local/bin/tolower''

如果您只试着从您的 archive 档中回存一个或几个档案,除非您确实地指定和 archive 档中所存放相同的档
名及路径,否则不会成功。 下面的例会帮您解决问题:
tar -ztvpf /archive/full-backup-09-October-1999.tar.gz \
| grep -i profile


在上面的例,所有在 archive 档中的档案都以档名列出。所有的结果都会输出到 ``grep'' 指令 (使用 grep的
``i'' 选项可忽略混杂的情况),显示``profile''中任何档案的目录及档名。当您确实决定要回存的档名时,您可
以用一般的 tar 指令表达指定所要回存的档案。


就像在 伺服器备份程序 所提到的,当建立一个 archive 档时, tar 会从档案路径去除前面的 ``/'' (斜线)符号。
这表示档案回存时可能不会在和备份时相同的位置结束。因此,不要改变到 ``/'' root 目录或者
``--directory /'' 选项。
注意: 一个更安全的方法是在不同的目录回存档案 (例如您的 home 目录),然後比对,搬移及更新档案到之
後的原始位置。

使用``KDat''回存:
要从 KDat 建立的备份组回存一个或更多档案,将备份磁带放进磁带机,从“File”选单项目选择“Mount Tape”
(或在磁带的图示上按下滑鼠左键)
KDat 会试着从磁带读入开头资讯,如果成功的话,会试着找寻符合开头资讯的磁带索引。这个索引存在硬碟,是
由 KDat 为所格式化的每一个备份磁带所做的唯一档案,每一次进行备份就会更新。如果符合的档案索引遗失了
(也许您回存的备份组是由另一部机器所备份的,或是因为硬碟损毁而删除了索引档), KDat 会通知您这件事,
并且如果可以读取磁带重建索引的话会询问您。由於您必须在您回存档案前先重建索引,按左键选择“Yes”是
有意义的。

(注意: 一但磁带重新索引过,名称会变成“Reindexed Tape”。 您可以将它重新命名成原来的样子)

当磁带索引成功地读入,可以用来选择您想从备份组回存的档案或目录,和您建立备份档时所用的方法十分相同
(查看 伺服器备份程序 有关选择档案过程的详细说明)。
当您选择好合适的档案,您可以从目录页中的“File”选项选择“Restore...”开始回存程序 (或在磁带回存的
图示上按滑鼠左键)。KDat会显示一个对话框,让您确认要回存的档案。此外,您有指定回存的档案所到目录的选
项。这让您回存重要档案到您的 home 目录下,然後可以和预期位置中的档案做比较,移动或是更新。这实际上
是最安全的回存档案方法。

要开始回复程序,在“Okay”钮上按一下,KDat 会扫描磁带并且开始回存选定好的档案。

有时,您会发现不使用 KDat 回存一个用 KDat 备份过的档案是必须或有帮助的。也许您想要在不提供图形介面
的系统上回存这些档案,或是您的网路速度很慢而透过它执行 KDat 是不切实际。幸运地, KDat 使用 ``tar''
工具写入备份资料, 在任何 *nix 系统都有的命令列工具。

如果您打算用 tar 回存用 KDat 建立的备份组,就像您回存用 tar 本身备份的普通备份组所做的选项一样。记
住,资料组并未以压缩格式储存。

注意: 当您试着使用 tar 存取由 KDat 所做的备份组时,一定会得到错误讯息。这是因为当磁带第一次格式
化时 KDat 加入了开头及其他资讯。重 tar 指令两三次就会跳到档案真正开头的地方。

Linux 网管 123 --- 第8章. 备份及回存程序 -3.Cisco 路由器组态备份


在我工作的地方,我们透过广域网路连接距离很远的几个地点。这些地方利用 Cisco 路由器透过 ISDN 连接,
或在其他例子, Centrex data circuits 提供 Internet 及 WAN 连结。 Cisco 路由器产品允许网路伺服器透
过 TFTP (“Trivial File Transfer Protocol”) 读写组态档。无论何时当路由器组态变更,在 Linux 伺服器
上储存其组态档很重要,因为这样才能维护备份。
请注意 Red Hat 预设是 disable TFTP 服务,因为如果组态不正确这可能变成安全上的漏洞。 TFTP daemon
允许任何人无须进行稽核就可以读写档案。我个人的做法是建立一个 ``/tftpboot/'' 目录,由 root 所拥有,
然後修改位於``/etc/inetd.conf''档已有的组态列,指向该档案位置:
tftpd dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot

注意: 在上面那一行末端加上 ``/tftpboot'' 路径,明确地指出允许 TFTP daemon 存取的档案位置。虽然您
也可以略过这一部份,并且允许 TFTP 存取您系统上任何一部份的档案,既然 TFTP 有安全上的风险,这可
能是很遭的主意。

一但您 enable TFTP 服务,别忘了键入:
killall -HUP inetd


上面的指令重新启动 INETD daemon 以辨认出您在 inetd.conf 档中所做的任何变更。

要建立路由器组态备份档牵涉到3个步骤的程序 : 设定写入到一个已存在档(或建立一个新的)的许可,写入备份
档,然後重新设定限制存取该档案。下面是一个路由器组态备份的例:
mail:~# cd /tftpboot
mail:/tftpboot# chmod a+w xyzrouter-confg
chmod: xyzrouter-confg: No such file or directory
mail:/tftpboot# touch xyzrouter-confg
mail:/tftpboot# chmod a+w loyola-confg
mail:/tftpboot# telnet xyzrouter

Escape character is '^]'.
User Access Verification
Password: ****
xyzrouter> enable
Password: ****
xyzrouter# write network
Remote host []? 123.12.41.41
Name of configuration file to write [xyzrouter-confg]?
Write file xyzrouter-confg on host 123.12.41.41? [confirm]
Building configuration...
Writing xyzrouter-confg !! [OK]
xyzrouter# exit
Connection closed by foreign host.

mail:/tftpboot# chmod a-wr,u+r xyzrouter-confg
mail:/tftpboot# exit

当路由器出现失效的情形 (例如因为打雷发生的突波所导致),这些备份档可以帮助重新载入路由器组态,
从组态档恢复牵扯到3个步骤的程序 : 设定既有档案的许可,载入档案,然後重新设定限制存取该档案。下
面是路由器组态恢复的例
mail:~# cd /tftpboot
mail:/tftpboot# chmod a+r xyzrouter-confg
mail:/tftpboot# telnet xyzrouter

Escape character is '^]'.
User Access Verification
Password: ****
xyzrouter> enable
Password: ****
xyzrouter# config network
Host or network configuration file [host]?
Address of remote host [255.255.255.255]? 123.12.41.41
Name of configuration file [xyzrouter-confg]?
Configure using loyola-confg from 123.12.41.41? [confirm]
Loading xyzrouter-confg from 123.12.41.41 (via BRI0): !
[OK - 1265/32723 bytes]
xyzrouter# write
xyzrouter# exit
Connection closed by foreign host.

mail:/tftpboot# chmod a-wr,u+r xyzrouter-confg
mail:/tftpboot# exit

Linux 网管 123 --- 第9章. 各种杂项管理工作 -1.检查储存空间


Linux 已被实其高度可靠性,在过去四年我用来作为 Internet 伺服器,并且只需要些许的手动
调整就可以维持运作。可能的话,很多重性或冗长的管理程序应该且必须由 crontab 项目和 script
档处理。然而,为确保Linux 持续其无失误的性质,可以时常进行一些快速检查。其中包括:


检查储存空间


随时检查储存设备上所剩下的足够剩馀空间十分重要。使用“df”命令获得可用空间的报告。它看来可能
像下面这个样子(所显示的数据来自我工作地方的 Internet 伺服器):
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/sda1 1888052 135908 1654551 8% /
/dev/sdd1 4299828 100084 3977246 2% /archive
/dev/hda2 3048303 897858 1992794 31% /archive2
/dev/hda1 11677 1380 9694 12% /boot
/dev/sdc1 4299828 350310 3727020 9% /home
/dev/sdb1 4299828 598504 3478826 15% /usr
/dev/sda2 1888083 700414 1090075 39% /var
/dev/scd0 593958 593958 0 100% /cdrom


这些档案系统在他们正常的缓慢成长状态中非常稳定。

“/” (亦称为 root)档案系统,挂载在 /dev/hda1,包含 Linux 核心,设备驱动程式,以及其他目录。
这也是使用者存放邮件讯息(/var/spool/mail/) 以及 log 档 (/var/adm/)的地方,但因为 mail 讯息是被
接收的且 log 档是循环的,可用空间保持相当稳定(估计大约每个月成长 1%)。Log 档案是循环的而且以每
为基础会被丢弃,所以您会一直拥有大约一个月的可用宝贵 log 资料。
小技巧:如果这个档案系统快速成长,细心地注意 /var/spool/mail 目录 -- 找找看很大的邮件信箱
(有时像 ``find /var/spool/mail -size +1000k'' 会显示超过1M邮件信箱的列表),如果您找到信箱大
於 1,000,000 bytes ,使用者可能没有接收信件,或是位於一个大容量的邮寄目录,或伺服器未将它的
e-mail 包裹设定为删除。和该使用者联络或删除其档案,使用 “> mailbox”, (例如. ``>smithj''
会清除 Joe Smith的邮件信箱)。同时检查 ``/tmp/'' 目录,在某些情况下必须清除掉 (通常 tin* 会留
下是因为从 newsreader sessions中放弃,旧的列印档等)。


“/usr/” (亦称为 user) 档案系统,挂载在 /dev/hda2,包含着使用者可以安装的软体 (使用者指的是系统
管理员所安置的使用者),例如您的网页等。这是最大的档案系统,并且正常地缓慢成长。网页的 log 档也可
以放在这里,依比例成长; 依需要期地检查及修剪他们。在我的机器上,在每个月的开始最新的网页 log 档
被移到每月的归纳 log (亦即. access_log.11 是十一月份的 log 项目)。在年尾这些档会被删除然後重新循环
(这表示每年一月一号都会看到可用空间改善了)。
小技巧: 如果这个档案系统快速成长,检查 ``/usr/local/etc/httpd/logs'' 及 ``/usr/local/squid/logs/''
目录 (如果您有他们的话)。有可能 log 档太大 (可能该网页太多人拜访过了)。然而,我的这些 log 会定期
地自动被删除,在这里您应该不会遇到任何关於空间的问题(事实上,因为这些 log 是用来作统计分析我的网
站流通量,可能的话我宁愿不要删除)。另一个可以检查潜在可删除档的地方是 ``/usr/tmp/''。


The “/home/” (亦即使用者个人的 hone) 档案系统,挂载在 /dev/hda3,包含所有使用者的目录和个人资料。
除非您散了 shell 帐号,这些中的大部分使用者是无法使用或用不到的 (当使用者的帐号被建立的同时,这些
目录也被建立,然後就可以回使用者的信了等等)。然而 shell 帐号的使用者,或其他非 shell 帐号但有网页的
用户(亦即. 个人网页) 也有可能存放在这里。此外,在 Red Hat 中主要伺服网页是放在 /home/httpd 目录下,
其他的发行版则常放在 /usr 档案系统下 (参考第7章,网页伺服器及 HTTP 快取代理主机管理 的相关讯息)。

除非您释放很多 shell 帐号否则这个档案系统可能是成长最慢的
小技巧: 如果这档案系统突然变得很大,可能是您的用户在他们的个人空间中增加了网页或二进位档。
检查 ``/var/adm/xferlog.*'' log 档的最近变动,这会告诉您哪位用户增加了网页。


我也有一个 “/archive/” (亦即 archive 档) 档案系统,挂载在 /dev/hdb1,这是一台备用可以用作任何用
途的1.02 Gb 硬碟机(例如,资料档,工具软体等) 我用了这部磁碟好一部份 (大约 70%) 作为磁碟-磁碟系统完
全同步备份)。一般而言您可以随意安装您想要的装置。

我有一台 CD-ROM,挂载在“/mnt/cdrom/” 位於 /dev/scd0,这是一台可以读取任何 ISO9660格式的24倍速
SCSI CD-ROM。主要用来安装软体,但是 DOS/Windows 的 CD 可以先挂载上然後让 Windows 3.x/95/NT 网路透过
Samba 服务分享存取(参考 第7章,使用 Samba 进行 Windows 型态的档案及列印服务 有关细节)。

“rm” 命令会删除档案。使用方法是 ``rm 档名''。如果您要确认删除,使用 “-i” 选项 (例如. ``rm -i *''),
在每一个档案被删除前您都被要求确认。
(注意: 这是对一般使用者的预设值,但是注意 -- 使用 root 身分在删除档案之前不会要求确认,除非您指定
“-i”选项!)


小心不要在这指令上打错字 -- 特别是当以“root”身分登录时 -- 因为您可能因为删错了档而感到後悔。

Linux 网管 123 --- 第9章. 各种杂项管理工作 -2.管理进程

随着时间增加,您可能会想看看 Linux 上正在执行的行程。要得到行程列表的话,键入
``ps -aux'',看起来会像下面这个样子:
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
bin 69 0.0 1.0 788 320 ? S Nov 30 0:00 /usr/sbin/rpc.portmap
frampton 10273 0.0 2.1 1136 664 p0 S 14:12 0:00 -bash
frampton 10744 0.0 1.1 820 360 p0 R 17:25 0:00 ps -aux
frampton 10745 0.0 0.8 788 264 p0 S 17:25 0:00 more
nobody 10132 0.0 1.8 1016 588 ? S 13:36 0:00 httpd
nobody 10133 0.0 1.8 988 568 ? S 13:36 0:00 httpd
nobody 10413 0.0 1.8 1012 580 ? S 14:56 0:00 httpd
nobody 10416 0.0 1.8 1012 580 ? S 14:56 0:00 httpd
nobody 10418 0.0 1.8 1012 588 ? S 14:57 0:00 httpd
nobody 10488 0.0 1.7 976 556 ? S 15:34 0:00 httpd
nobody 10564 0.0 1.8 988 564 ? S 16:06 0:00 httpd
nobody 10600 0.0 1.8 988 564 ? S 16:15 0:00 httpd
nobody 10670 0.0 1.8 988 568 ? S 16:45 0:00 httpd
nobody 10704 0.0 1.7 976 552 ? S 17:03 0:00 httpd
root 1 0.0 1.0 776 312 ? S Nov 30 1:13 init [3]
root 2 0.0 0.0 0 0 ? SW Nov 30 0:00 (kflushd)
root 3 0.0 0.0 0 0 ? SW Nov 30 0:00 (kswapd)


上面的列表显示出行程的拥有者 (“nobody”是特别的服务,像是网页等),行程识别数字,行程目前
所占 CPU 时间的百分比,行程所耗的记忆体百分比,还有其他资讯,以及任务本身的描述。

要得到特定行程的详细资讯,键入 ``pspid'' (“pid”是行程识别数字)。看看我们上面的例子,
“ps 10704” 将会显示 :
10704 ? S 0:00 /usr/local/etc/httpd/httpd

这显示出这个特别的行程是网页伺服 (Apache 网页伺服器在行程列表中出现好几次 ; 要得到更多有关
讯息可以查看 第7章,网页伺服器及 HTTP 快取代理主机管理 ).

如果您突然发现某一服务没有运作,您可以使用“kill -HUP pid” (“pid”是上面用“ps”显示的程
序列表中的行程识别数字)。例如,如果 Internet 服务 (称做 inetd 的程序,在我们的例子中的 #123 程序)
没有照他们应该作的运作, ``kill -HUP 123'' (或更安全一些,使用 ``killall'' 指令指定程序名
称 : ``killall -HUP inetd'')应该会重新启动该程序。 -HUP 选项对於 kill 指令的意义是“挂断”;
程序知道被认定为自我重新载入。

如果您无法解决这个问题,另一个方法是关闭系统然後重新启动它 (查看 第6章,关闭系统及重新启动
有关细节)。

偶尔,您可能需要暂时搁置一个行程,然後晚一点再继续执行它。例如,您可能执行需要强调 CPU工作的
程式,烧录 IDE 介面的可写入式光碟机。既然 IDE 介面设备较仰赖 CPU 做输出及输入,如果 CPU 太忙
碌的话可能会耗尽缓区,然後您最後会得到一个杯垫而不是录好的光碟 ! 下面的指令会搁置行程,然後
再分别地继续他们:
kill -STOP 945
kill -CONT 945

Red Hat 提供启动及停止一些程序的较好方法,在後面的 行程的启动及停止 提及

Linux 网管 123 --- 第9章. 各种杂项管理工作 -3.进程的启动及停止

Red Hat 的 Linux 发行版提供了稍微更有组织的行程管理方法。取代在行程表中搜寻行程
id 及杀掉他们, Red Hat 收集提供了一些 script 在 ``/etc/rc.d/init.d'' 目录下,允许
您启动及停止想要的行程。
例如,要停止``httpd'' (Apache 网页伺服器) 服务,只要执行 httpd script,像下面这样 :
/etc/rc.d/init.d/httpd stop

用相似的方法,您可以使用 ``start'' 选项开始服务。 或者,如果您变更了组态档而且想重新
启动服务以便确认这些改变, 您可以使用 ``restart'' 选项。

(注意: 很奇怪, ``restart'' 选项看来不支援相同的服务)
Linux 网管 123 --- 第9章. 各种杂项管理工作 -4.使用 Cron 及 Crontab 档进行自动作业


像大部分 Linux 使用者一样,您可能需要在某时候进行重性工作的排程。这类工作可能频繁到几
分钟一次,也可能一年只有一次。这些工作可以使用 ``cron'' 工具完成。
cron 工具在 Linux 上的应用和和在其他 Unix 上所应用的非常相似。然而, Red Hat 加上了一点
和其他 Linux 发行版不同的工作排程方法 。在其他的发行版,排程资讯位於系统的 ``crontab''档
(位在 ``/etc/'' 目录),使用下面的格式 :
minute hour day month year command

您可以指定整数的时间要素 (例如 . 1 到 12 表示从一月到十二月),或者用``*'' 符号作为万用字元
指定一个或更多的要素 (例如 . * 在月的要素部分表示指令会在每月的特定日期及时间执行)。这里是
一些例子:
# Mail the system logs at 4:30pm every June 15th.
30 16 15 06 * for x in /var/log/*; do cat | mail postmaster; done

# Inform the administrator, at midnight, of the changing seasons.
00 00 20 04 * echo 'Woohoo, spring is here!'
00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!'
00 00 20 10 * echo 'Fall has arrived. Get those jackets out. '
00 00 20 12 * echo 'Time for 5 months of misery. ;-('

注意该指令会输出到一个标准出口 (亦即. 一个终端机 )?袷巧厦媸褂?``echo'' 的例子会将输出寄
给 ``root'' 帐号。如果您想要避免它,只要像下面将输出导引到一个空的设备 :
00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/null

在多出的标准 ``crontab'' 项目, Red Hat 加上了一些目录 :
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/

和他们的名称所建议的一样,可执行档可以放在任何这些目录,并且将会每小时,每日及每执行。这节
省了一些设定频繁工作的时间 ;只要将可执行的 script 或程式 (或到任何其他储存媒体的符号连结)放到
合适的目录内,就可以不管他们了。


Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -1.使用RPM


为了得到完整的 Linux 系统,加入特性,克服潜在的缺陷,并且确定安全漏洞相当少,持续更新
您的系统 -- 包括 Linux 核心,模组,及使用者的应用程式是一个很好的主意 ,有时候可能需要
升级硬体组件,像是大一点的硬碟。这一章会指出这些内容。


使用 Read Hat 套件管理程式 (RPM)


Red Hat 的 Linux 发行版,以 RPM 档的形式提供包括核心,程式库,及应用程式的 RPM 档。所谓套件
(package) 是一个发行软体的方法,以便可以容易地安装,升级,查询,及删除。 RPM 档包含套件名称
的资讯,版本,其他从属档案资料 (如果有的话),平台 (像是 Intel 或 Alpha, 等.),同时还有预设
安装位置。
RPM 公用程式由 Red Hat 以在 Linux 社群所常见的开放来源产品型式首先发展及提供。其他的开发者节
选它并且增加其他的功能, RPM 封装档案的方式变得很普遍,并且不单只用在 Red Hat 上,也可於在其
他的发行版本。

受欢迎的 Linux 应用程式几乎总是以 RPM 档被散,常常是很短的时间。然而,在 Unix 世界中实际上
的标准套件一直以称为“tarballs”的方式散。Tarballs 是一个可以用 ``tar'' 公用程式读取的简单
档案。从 tar 中安装明显地比 RPM 沉闷,那为什麽人们选择这样做 ? 不幸地,有时候开发者得花好几的
礼拜的时间才能得到由 RPM 转换过来的最新版本(很多发展者用 tarballs 作第一次发行)。

如果您使用 tar 开始安装或升级您的系统或应用程式,您的 RPM 资料库会变的过期而且不一致。这没有
太大关 (当我使用 Slackware,我只使用 tar -- 没有其他选择 -- 没有太多不便)。但可能的话我会试
着耐心等待到 RPM 的出现,或是请求该套件的开发者。(您可以建立自己的 RPM 档并且散给其他人,这
样有时对那些没有办法或没有时间自己作这些档案的开发者来说很有帮助)。

一个可以检查是否有 RPM 型式的新软体的好地方是 RPM 的储藏库 。这
个储藏库提供索引过的分类,有助於寻找特定的 RPM 档,且包含上千个这类档案的指南。

要查询一个套件时,用 ``rpm -q pkg-name'' (eg. ``rpm -q pine'')。RPM 会告诉您已经安装或尚未安装
的套件版本。

假设套件已经安装,且比您所下载的套件版本更早 (应该是这样),然後您应该可以用 ``rpm -Uvh pkg-name'
更新它'。如果一切正常,该套件应该自动地安装且立即可以准备使用。如果不是,RPM 会给您一个很好的理由
(例如,例如一个支援套件需要先被升级)。这需要稍微地思考,但这些问题可以很明确地指出来。

如果,另一个情形,套件尚未安装,且您决定去安装它,键入 ``rpm -ivh pkg-name''。如果需要任何支援套
件,RPM 会通知您。

有时候,您会想要安装一个只有原来格式的套件。事实上,除非您安装一个来自可信赖的来源的套件
(像是 Red Hat FTP 站),您也许应该从原始来源安装,以免里面的档案含有特落伊档或其他心的东西
(当然,原始 RPM 也可能包括这些东西,但是未必有,因为其他开发者可能简化掉)

从来源安装一个套件的方法是指定 RPM 公用程式中的 ``rebuild'' 例如:
rpm -ivh --rebuild foo.src.rpm

以上的指令会组态及编译 ``foo'' 套件, 产生一个二进位 RPM 档位在 ``/usr/src/redhat/RPMS/i386/''
目录下 (假设您在 Intel 平台上使用 Linux )。 然後您可以用一般的方法安装这个套件。

最後,如果您在获得用来编译的原始套件时发生困难 (也许您要修正一个 makefile,或改变一个组态选项等),
您可以进行下面步骤 (再一次,以我们有可塑性的 ``foo'' 套件为例) 来编译 source, 建立一个二进位套件,
然後用来安装 :
rpm -ivh foo.src.rpm
cd /usr/src/redhat/SPECS
pico -w foo.spec

在``.spec'' 档进行任何您认为需要的修改,然後键入:
rpm -ba foo.spec

这将会使用您在``.spec'' 档中所作的变更而重建套件。如以上所作,产生的 RPM档将会位於
``/usr/src/redhat/RPMS/i386/'',然後可以正常地被安装。

您应该参考 Red Hat 的有关 RPM进一步资料。这是个非常有力的工具,值得去仔细学习。最好的 RPM 资料来源
是 ``Maximum RPM'',可以在很多书籍里找到,也有一个以 postscript 型式放在
. ;(如果您决定列印这个 postscript 文件,考虑您可能需要很多纸张 !)
这是一份较小的指南, ``RPM-HOWTO'', 在 ;也可以拿到。

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -2.不使用 RPM

不使用 RPM 进行安装或升级


有时候您会发现需要安装或升级没有 RPM 套件可用的应用软体。 当然有可能要去做这个事
(事实上,在真实的 Unix 世界中这是 “预设”的状况),但除非必要否则我反对这麽做 (要
知道原因的话,查看 第10章,使用 Red Hat 套件管理程式 (RPM) ).
您需要从 tarball 上安装的任何东西, 一般通用的原则是将与系统有关的软体安装在
``/usr/local/'' 下。 因此,原始的 tarball 要先解到 ``/usr/local/src/'' 下, 然後二进
位档可能会解到``/usr/local/bin'',还有他们的组态档会解到 ``/usr/local/etc/''。这样管
理工作会变得简单一些 (然而不像只有 RPM 的系统那麽简单)。

最後, 终端使用者会依他们自己的意愿将软体将 tarball 解到他们自己的 home 目录下。
最後从您自己信任的网站上下载 tarball ,变更到适当的上层目录然後按照下面例解开档案
(如果必要,以 root 身分):
tar zxvpf cardgame.tar.gz

上面的指令会从例的 ``cardgame.tar.gz'' 压缩档解出所有的档案。 ``z'' 选项告知 tar 档
案库是由 gzip 所压缩 (所以如果您的 tarball 没有压缩的话,可以省略这个选项); ``x'' 选项
告诉 tar 从档案库中解出所有档案。 ``v'' 选项表示显示出已经解出的档名。 ``p'' 选项维持档
案库建立时的档案来源及权限。最後,``f'' 选项告诉 tar 下面接的是档名。不要忘了 tar 的选
项大小写不同。

警告: 就如 第8章,使用``tar'' 回存所提到的, 我建议先使用 ``t'' 选项显示档案库内容以
验原先的内容和真正解开的档案相同。这麽做可以避免解到非计划中的位置, 或更糟不慎覆盖
原有的档案。

一但 tarball 安装到适当的目录下,您几乎一定会找到新安装档内附的 ``README'' 或 ``INSTALL''
档,有关如何准备使用该软体的进一步指示。 很可能您需要键入类似下面的指令:
./configure
make
make install


上面的指令将会组态软体以确定您的系统有所需的功能及函式馆可以成功地编译套件,编译所有的原始
档变成可执行的二进位档,然後将二进位档及其他支援档案安装到正确的位置。实际您需要进行的程序,
当然依您的软体套件而异,所以您应该阅读完所有内含的档案。

再一次,除非绝对必要,我真的建议可能的话避免使用 tarball 而选择 RPM 。

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -3.保持系统处於最新状态的策略

随着时间的增加,您可能会从多地方听到有关 Linux 核心及应用程式的重大升级,
这些来源可能是杂,报纸,网页等。
一个可能是 Linux 管理者必须注意的最佳单一来源是 -- 注意 ;
这个网页。 这一个网站的内容有新的开放来源应用软体及计划,文件,及 Linux 社群有兴
趣的通告。


另一个保持追踪新应用软体通告的来源是透过 comp.os.linux.announce 新闻群组。这一个
新闻群组包含有关 Linux 新应用软体,一些核心及应用软体的升级,网页等的通告。这是由
新闻群组本身所管理,因此会有很多“噪音”。

不是所有的产品升级通告都会贴到 comp.os.linux.announce,因此造访您所使用软体的网页
及 FTP 站也是一个好主意。
Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -4.Linux 核心的升级


随着时间的增加,您可能想要升级您的 Linux 核心,这可以让您维持新功能及修正错误,
或是让您的 Linux 在新的特定硬体上运作,或能有订核心所拥有的功能 。
这一节会描述升级和订新的核心。这不像您想的这麽难 !

可以在很多来源获得新核心版本的通告, 包括在 comp.os.linux.announce 新闻群组,以及
在 ;和 ;网页。

请注意目前有两组核心正在发展 -- 一组被认定为 “稳定” 版本, 另一组被认定 “发展中”
版本。对於重要的应用像是 Internet 伺服器, 高度建议选择稳定版本的核心而不要使用发展中
版本。

两组之间的不同点是,发展中的核心,尚未测试的硬体驱动程式,档案系统及其他“尖端” 发展
以渐进的原则被导入。这些核心是给骇客用的 -- 不在乎重新启动系统的人。

稳定的核心只导入完全测试过後的新功能及驱动程式。这一组中有少数是用来清除已被发现且更正
後的残馀问题。

这两组的版本编号不同用作分辨, 稳定版本的第二个数字是偶数 (例如. 2.0.35, 2.0.36, 2.2.4) ,
发展中的版本第二数字是奇数 (例如. 2.1.120, 2.1.121, 2.3.0).

最新的稳定核心版本都可以在 ;FTP 站得到预先编译好的格
式。下载您所要的系统及版本的核心套件 (例如, 您会想在 ``/6.1/i386/'' 目录下搜寻及下载给
Intel 系统的6.1版本 ``kernel-*.i386.rpm'' )。

注意: 除非您打算自定自己的核心,否则不需要下载核心的原始档 (查看 做一个订的核心一
节中有关自订核心的细节)。

有时,您会发现需要用到核心还没有成为 RPM。 在这种情况,您可以在 ;FTP
站找到最新版本, 位在 /pub/linux/kernel/ 目录下,先到适合的主要版本子目录下 (例如. ``v2.0''),
那里有最新发表的核心。下载所要的核心套件 (例如,给 Intel 系统所压缩过的
tarball 2.0.36 版会名为 ``linux-2.0.36.tar.gz'' ) 然後用 tar 解到 ``/usr/src'' 目录下。
注意: 传统上,大部分使用者不是用 RPM 所安装的软体会解到 ``/usr/local/src/'' 目录下,
但这是一个核心,所以在这个情形是个例外。

请小心如果您决定下载 tarball 升级您的核心,您几乎可以确定要自己组态,编译及安装。除非您有
要用到最新版核心的特殊需求,管您也可以依您的需要从RPM档编译自订的核心,我强烈建议您使用
Red Hat 提供的 RPM档升级您的核心 -- 这些已经为您预先组态及编译过了。

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -5.升级 Red Hat 的现成核心


很显然最简单升级您的核心的方法是使用Red Hat提供的现成核心 RPM 。
这些 RPM 档包含预先编译过的二进位核心,支援大部分的硬体及常见的功能 。
安装现成核心很简单而且牵扯的风险很小。只要以 root 身分键入下面一串指令:
rpm -Uvh kernel-2.0.36.i386.rpm
cd /boot
ls

注意核心名称, 和上面 ``ls'' 指令所列的一样。 您应该关心 ``vmlinuz'' 档;
例如第三次 RPM 发表的 2.0.36 版核心看起来会像是 ``vmlinuz-2.0.36-3''.

现在,使用编辑程式编辑 LILO 组态档 (键入: ``pico -w /etc/lilo.conf'') 并且修
改 ``image=/boot/...'' 这一行指向新的档案。 当您完成後,键入 ``/sbin/lilo''。
如果 LILO 回应错误讯息,再一次检查您在 ``lilo.conf'' 档中的档名和 ``/boot/''
目录中的档名比较。

警告: 不要忘了这一步!

(上面的指令假设您使用 Intel平台且使用 LILO 启动系统。查看 第4章,从 LILO 启动
有关 LILO boot loader 的细节).
在您升级现成核心及更新 boot loader 资料後,您可以关闭系统然後用新的核心重新启动
(查看 第6章,关闭系统及重新启动 关於关闭系统的细节).


Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -6.作一个订的核心

如果您想要在一个新硬体系统上运作 Linux ,或者想要使用一些原本核心没有支援的特点,也许或
者您想减少核心所占的记忆体使系统记忆体运作的更好,您会发现必须建立自己所定的核心。
更新核心包含了组态所需的模组,编译核心及模组,最後安装核心映像档,随着重新开机而载入新的
核心。在``README''中这些所有的文件都来自於每个核心套件。进一步的资讯可以在
``Documentation/'' 子目录中找到。一个特别有帮助的档案是``Configure.help'' ,其中包含了有
关编译核心的选项及模组的详细资讯。

下面是一个例,显示如何建立自己的 Intel 平台 2.0.36 版核心。建立订的核心常常只是组态,
编译及安装上的问题。有时(通常因为新的硬体) 需要下载新的驱动程式,因为原本核心编译时该硬体
尚未被支援。

建立订核心的第一个步骤是下载及安装核心,不论是来自 RPM (优先选择) 或从 tarball。参考
第10章,Linux 核心的升级 一节 有关获得合适档案的详细资料。

下一步,使用 ``rpm'' 公用程式 (或 ``tar'',也可以) 安装核心来源及标头档。例如,安装
2.0.36-3 核心的 RPM 档:
rpm -Uvh kernel-source-2.0.36-3.i386.rpm kernel-headers-2.0.36-3.i386.rpm
rpm -Uvh kernel-ibcs-2.0.36-3.i386.rpm

(如果您在笔记型电脑上运作Linux,您或许想要安装 ``kernel-pcmcia-cs-2.0.36-3.i386.rpm'' 这个
档,它提供了电源管理的功能)

在安装好核心档之後,您应该可以找到新的原始档,位在 ``/usr/src/linux/'' 目录。

下一个步骤是下载任何附加的驱动程式档 (如果有的话),并且安装他们在新的核心来源。例如,要增加
对 Mylex DAC960 硬体 RAID 控制器的支援,我会从网站上下载驱动软体。不幸地,像
;网页上的驱动软体常常只有提供 tarball 而且需要 ``tar'' 公用程式去安
装它。例如:
cd /usr/src/
tar zxvpf DAC960-2.0.0-Beta4.tar.gz

可能的话,您应该阅读由您所增加驱动程式软体所提供的文件。例如 DAC960 驱动程式包括了 ``README''
档案,里面有关於哪里下载最新的驱动程式,及如何索取核心的修正档:
mv README.DAC960 DAC960.[ch] /usr/src/linux/drivers/block
patch -p0 获得有关核心各个选项的描述

在您完成对核心的组态设定後,键入下列命令编译您的核心:
mail:/usr/src/linux# make dep ; make clean
mail:/usr/src/linux# make bzImage
mail:/usr/src/linux# make modules

如果您重新编译和之前相同的核心 (在本例中是 2.0.36-3 ),您或许会想要用下面的指令将现有的模组移
到备份的目录下:
mail:/usr/src/linux# mv /lib/modules/2.0.36-3 /lib/modules/2.0.36-3-backup

现在,键入下列指令真正地安装新的模组:
mail:/usr/src/linux# make modules_install

下一个步骤是将核心到 ``/boot/'' 目录下,并且使用 LILO 更新 boot record ,如此一来新的核
心就会被承认。下面的指令会将现有核心作一个备份,新的核心取代它,然後更新 LILO boot record:
mail:/usr/src/linux# cd /boot
mail:/boot# cp vmlinuz vmlinuz.OLD
mail:/boot# cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.0.36
mail:/boot# /sbin/lilo

最後,您需要编辑 ``/etc/lilo.conf'' 档,并且确定 “image”是指向新的核心。您也应该加入一个项目
指向您的备份核心,也许称作“OldLinux”. 这是一个例档:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=Linux
root=/dev/hdb1

read-only
image=/boot/vmlinuz.OLD
label=OldLinux
read-only

藉由此种方法备份您的核心资讯,万一您的新核心无法正常启动(也许因为某设备不被承认,或者一个
daemon 应该启动而未启动),您可以简单地键入 ``OldLinux'' 从原来的核心启动然後检查系统。
注意: 如同前面所提到,如果您已经编译了一个需要以模组方式启动系统的核心,您需要建立一个起始
RAMdisk 映像档以便启动系统。(别忘了将您的核心编译成可支援这样的映像档)


建立及使用起始 RAMdisk 映像档的程序如下:


在您的 ``/etc/lilo.conf''加入项目,以便启动起始 RAMdisk 映像档; 这里是一个先前已经展示过的组态
档增加的例子,: image=/boot/vmlinuz
label=Linux
root=/dev/hdb1
initrd=/boot/initrd-2.2.4-4.img
read-only


在您可以使用 mkinitrd 指令前要先载入loopback 装置. 确定 loopback 装置模组已经载入: /sbin/insmod loop


(如果您得到有关无法载入loopback 模组的错误讯息,您可能需要指定给目前正在运作的核心该模组完整路
径,例如 ``/lib/modules/2.0.35/loop''.)

使用 ``mkinitrd'' 指令真正地建立映像档: /sbin/mkinitrd /boot/initrd-2.0.36-3.img 2.0.36-3


执行 ``/sbin/lilo'' 更新您的 boot loader.
现在,关闭系统且启动新的核心!
mail:/boot# /sbin/shutdown -r now


如果您的核心拒绝完成启动,别惊慌。利用在安装 Linux 时所作的开机磁片开机。如果您没有该磁片,
应该可以利用Red Hat CD作。插入磁片然後重新启动电脑。当您看到“boot:” 提示时,键入:
mount root=/dev/hda1

上述的指令假设您的“/” (root) partition 位於 /dev/hda1.

Linux 应该然後正常地启动 (既然您是使用开机磁片开机,在这期间不是所有的装置及服务都能正常动作),
然後您可以回存您的旧核心然後重新安装 LILO boot loader 的资料
(亦即. ``mv /vmlinuz.old /vmlinuz ; /sbin/lilo'') 然後关机/重新启动。然後您可以试着用不同选项重
新编译核心再试一次。

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -7.升级到 2.2.x 版的核心

Linux 2.2.0 版核心於1992年1月25日发表,带来很多新的特色,性能提,及硬体支援。
任何现有的 Linux 系统可以用和 第10章,Linux 核心的升级 (包括警告)相同的方法升级
到这些新核心之一。
这一节会叙述如何升级您的 Red Hat 系统到新核心。 既然 Red Hat 6.0 (及以上) 已经预设以
新的核心及支援套件交运,这一节只对仍然使用较早版本的使用者有用,像是 5.2。一但我相信大
半的使用者已经迁移到 6.0及以上版本之後,我在这份文件的未来版本可能会移去这一节。

警告! 如果您决定升级您的旧系统以支援新核心,请考虑这个过程关到几个套件的升级,有可
能发生一些可怕的事。 一如往常, 准备最新的备份以防发生问题。如果您缺乏利用RPM 升级以
及编译核心的经验,也许您应该升级到 Red Hat 6.1.

您可以选择利用 Red Hat 所提供的现成核心升级,或编译自订的核心。我会建议先使用现成的核心,
稍後再依一般需求建立自订核心 (查看 升级 Red Hat 的现成核心 有关细节.)
要使用最新核心,首先要升级最新的公用程式及函式馆。 Red Hat 已经辨认好哪一个套件需要升级以
支援最新的核心,而且已经放置合适的RPM档在他们的位於
;
(给 Red Hat 5.2 使用者用在 i386 平台)的 ftp 上。

一个很好的网页, 详述转移到 2.2.x 的可用的适当系统工具,位在
;我会试着概述下面的资讯
(标示 ``**'' 指示这项对於 Red Hat 5.2您很可能需要升级;未标示的项目表示这些可能没问题,
但也许值得检查)。

** initscripts-3.78-2.4 或更高 (键入 ``rpm -q initscripts'' 检查您的版本)
** modutils-2.1.121 或更高 (键入 ``rpm -q modutils'' 检查您的版本))

** mount-2.9-0 或更高 (键入 ``rpm -q mount'' 检查您的版本))

gcc-2.7.2.3 或更高(``rpm -q gcc'')

binutils-2.8.1.0.23 或更高(``rpm -q binutils'')

libc-5.4.46 或更高(Red Hat 使用新的 ``glibc''. 不需要.)

glibc-2.0.7-6 或更高(``rpm -q glibc'')

ld.so 1.9.9 或更高 (``ls -l /lib/ld.so.*'')

libg++-2.7.2.8 或更高(``rpm -q libg++'')

procps-1.2.9 或更高(``rpm -q procps'')

** procinfo-15 或更高 (``rpm -q procinfo'')

psmisc-17 或更高(``rpm -q psmisc'')

** net-tools-1.50 或更高 (``rpm -q net-tools'')

loadlin-1.6 或更高 (只有当您利用Loadlin从DOS中启动 Linux 才需要,无法确定如何计算版本;
下载最新版本较保险)

sh-utils-1.16 或更高(``rpm -q sh-utils'')

autofs-3.1.1 或更高 (``rpm -q autofs'')

nfs-server2.2beta37 或更高 (``rpm -q nfs-server''; 只有当您提供 NFS 档案分享才需要.)

bash-1.14.7 或更高(``rpm -q bash'')

ncpfs-2.2.0 或更高(``rpm -q ncpfs''; 只有当您安装 Novell 档案系统才需要.)

kernel-pcmcia-cs-3.0.6 或更高(``rpm -q kernel-pcmcia-cs''; 当您要 PCMCIA 卡片支援才需要.)

ppp-2.3.5 或更高(``rpm -q ppp''; 当您使用数据机及PPP连接 Internet 才需要 .)

dhcpcd-1.3.16-0 或更高 (``rpm -q dhcpcd''; 只有当您需要 DHCP 连接到 Internet 才需要,像是
缆线数据机等).

** util-linux-2.9.0 (``rpm -q util-linux'')

setserial-2.1 或更高 (``rpm -q setserial'')

ipfwadmin/ipchains (只有当您使用 IP 防火墙才需要; 查看 ``IPCHAINS-HOWTO'' 位於
的指南)

您应该依要求下载及使用RPM 升级任何套件 (查看 使用 Red Hat 套件管理程式 (RPM) 一节 有关如何
使用 RPM 的细节).
警告: 升级到新的 ``modutils'' 套件会导致套件无法在较早的 2.0.x 核心使用 ! 因此,除非您
已经安装新的核心到 ``/usr/src/linux'' 否则不要升级这个套件。

在您将的系统工具改到最新版後,您可以安装核心原始档。 您也可以在 Red Hat 的 FTP 上找到 ; 我
建议下载用来提供升级到 Red Hat 6.1的那一个 , 位在 . ;
要这样做您可以键入下面:
rpm -Uvh kernel-source*.rpm kernel-headers*.rpm


现在新的核心原始档已经安装好了,升级您的 modutils 套件应该是安全的。然而,新的核心不再使用
``kerneld'' 模组用做核心模组的立即载入。因此,您应该在升级 modutils 之前 disable 这一个模组。
要 disable kerneld 以及升级 modutils 套件的话,以“root”分份键入:
/sbin/chkconfig kerneld off
/etc/rc.d/init.d/kerneld stop
rpm -Uvh modutils*.rpm

您现在应该可以依您平常的需求组态,编译及安装您的 2.2 核心 (查看 作一个订的核心 有关细节)。您
可能会对那麽多新的组态设定感到头晕目眩。对您不熟悉的选项花点时间阅读协助文件 !

运气好的话,下一次开机时您的系统将会是以新的 Linux 核心版本运作 !

更多有关这些步骤的细节可以在 Red Hat 的网页
上找到。

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -8.Apache.Squid


组态 Apache 网页伺服器


在我工作的地方,我们使用 Apache 套件提供网页服务, Apache 是一个全功能网页伺服器
完全支援 HTTP 1.1 标准, 快取代理, 密码认网页,以及很多其他特点。 Apache 是最受
欢迎的网页伺服器之一 (根据最近由 Netcraft 所做的网页调查,Internet 上有超过 54% 的
网站是使用 Apache 或其衍生品),并且提供与商业伺服器相等或更好的表现。
( 建设中. :-p )

为持续加入Apache新的特点及修正错误,随时间增加升级您的伺服器可能是个好主意。Apache
网页伺服器位於 ;并且有最新版本的资料 。
--------------------------------------------------------------------------------

组态 Squid HTTP 快取代理 Daemon


在我工作的地方,我们使用 Squid套件提供网页的快取代理, Squid 提供高性能的网页快取,并且也
支援 FTP, Gopher及 HTTP 请求。此外,Squid 可以依等级连结到其他的以 Squid为基础的快取伺服器,
以提供有效率的网页快取。
目前有两种版本的 Squid 。 一种是“正规” 版本, 适合用在有较多 RAM 的机器上。
第二种版本, “SquidNOVM” 适合有较少 RAM 的机器(我建议如果您的机器只有 64 MB 或更少的 RAM
使用这个版本)。基本上, “NOVM” 版本使用较少的记忆体耗费较多的档案。这是我用的那一个,并且
它工作良好。

( 建设中 :-p )

为了保持新特点及错误修正,随时间增加升级 Squid 伺服器是个好主意。更多有关 Squid 的资讯可以
在下面网页找到 .

Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -9.Sendmail

组态 Sendmail E-mail Daemon

我使用 Sendmail 套件提供电子邮件服务。 Sendmail 是最可靠的邮件处理程式 ;事实上根
据估计 Internet 上传送的邮件超过 80% 至少有一方是
透过 Sendmail 处理。它做了所有的事情,我无法想像没了它 Internet伺服器如何运作
(另一个 e-mail 伺服器套件叫做 Qmail,看来一样受欢迎 -- 但我还没有理由去试它).
为了保持新特性及错误修正,为了最重要的安全因素,随时升级 Sendmail是个好主意。此外,
最新版的 Sendmail 包含了强大的 anti-spam 特点
可以避免您的伺服器被未经授权的使用者滥用。

这一节会讨论您如果想使用 Sendmail 作为接收信件伺服器应该做的事, 这应该是做为伺服器
的方案。

在这一节,假设您使用最新版的 Sendmail (在写这篇文章的时候是 8.9.3),安装好且可以运作。

就像是 Red Hat 所发行的套件一样, Sendmail 通常包含恰当的组态资讯可以在大多数的伺服器
设定下正常工作。但是,您可能发现必须编辑 ``/etc/sendmail.cf'' 档并且依需要自订一些设定。
但这已经超出本文所讨论的围了。

我发现一个有用的东西,然而,它需要对组态档做一些修改以阻挡入侵者。这些包括:
O PrivacyOptions=authwarnings
change to:
O PrivacyOptions=authwarnings,noexpn,novrfy

O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
change to:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b NO UCE C=xx L=xx

(第一个改变避免有心人 在 sendmail 使用``EXPN'' 及 ``VRFY'' 指令。我发现这些指令太常被不道
德的人滥用。第二个改变修改了当接收到连接时 Sendmail 显示的标题。您应该将 ``C=xx L=xx'' 这
项中的 ``xx'' 换成您的国家和地区代码。例如以我来说,我使用 ``C=CA L=ON'' 代表 Ontario, Canada.
(後面的改变事实上不影响任何东西, 但在 news.admin.net-abuse.email 新闻群组中被人们作为公定
的预防措施)
接下来,如果您的邮件伺服器和实际运作的机器的主机名称不同,您可以在 ``/etc/sendmail.cw'' 档中
加入一个或更多化名。例如, 如果您有一个系统叫做“kirk.mydomain.name”用在 mydomain.name 作
为邮件交换, 但是希望进来的信件格式是 送到您在“kirk”的用户,依下面
加入别名:
mydomain.name

最後,如果您限制一个网域 (或子网) 接到您的 sendmail 服务,您可以编辑 ``/etc/mail/access''
并且依限制的类型加入网域资讯。例如:
some.domain REJECT
hax0r.another.domain 550 Contact site administrator at (555) 555-1234.

上面的例会拒绝来自 ``some.domain'' 地点的 e-mail 连接,以及用描述的讯息拒绝名称为
``hax0r.another.domain''的机器。

在对这个档案做变更後,您需要更新 ``access.db'' 档,然後依下述重新启动 sendmail :
/usr/sbin/makemap hash /etc/mail/access.db < /etc/mail/access
/etc/rc.d/init.d/sendmail restart

小技巧: 如果您关心 e-mail 的滥用,您可以从 “ Mail Abuse Prevention System(邮件滥用防止系
统)” (MAPS) 计划得到有关对付这些问题的有用资料; 查看网页位於 ;
如果您使用 Sendmail 8.9 或之後的版本,已经内建 RBL 支援,但未预设为 enable。要 enable 这个支援
的话, 在您的 sendmail.mc 档加入:
FEATURE(rbl)

然後重新组态及启动 Sendmail daemon。

要得到进一步资料,包括组态的的用法说明及其他邮件转送代理等,查看
. ;

有时候,您希望与在 RBL 目录中被终止的网域继续联。也许您很需要和位於黑名单网域中的某些使用者
联络。在这种情况, Sendmail 允许您越过这些网域收到他们的 e-mail。用礼貌的文字描述编辑
``/etc/mail/access'' 档并加上合适的网域资讯 。例如:
blacklisted.domain OK

不要忘了重建自己的 access.db 档 (上面叙述过)!

如果您决定使用 RBL,如果可能的话通知您的邮件使用者是个明智的决定,如此一来如果他们不同意您
的决定的话,可以做其他的服务安排。


要得到更多有关 Sendmail 的资料,查看位於 的FAQ

Linux 网管 123 --- 第11章. 在企业里的电脑使用 Linux -1.使用 RAID

既然 Linux 已经因为其稳定及可靠赢得良好的声誉,它已经在企业及科学界应用於更多重要的地方。
这一节会讨论使用 Linux 用於企业的更切确问题,像是将您的伺服器在高负载下最佳化以得到更高的效能,
利用 RAID 技术保持您的资料安全,以及在讨论在伺服器中迁移的一般步骤。


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

使用 RAID 的高效益


随着储存需求的增加,有时需要增加更大连线容量的设备。讽刺地,储存装置的增加数量是由或然率所支配,
设备故障的机率也是。因此,一个只有一部硬碟机的系统遭受硬体故障的机率只有四部硬碟机的 25% 。[ 不论如何,
理论上是这样 ]
幸运地,这种故障可以轻松地处理 ,更重要的是不停机,称为
“Redundant Array of Inexpensive Disks” (RAID) 的技术使用几种方法将资料分散到多部硬碟上面。这个冗赘
的特性允许当系统失去作用时能自动回覆资料。

这一节会描述使用Mylex AcceleRAID DAC960 控制器安装,组态及设定 RAID 硬碟阵列。 我不但对於控制器本身
的性能及稳定度感到印象深刻, 对於 Mylex 的技术支援也是 -- 他们是非常 Linux-友善的 ! (然而,还有很多
的 Linux 硬体 RAID 解决方案,而且 RAID 可以由 Linux 核心本身经由软体执行) RAID 应用的种类最有用的
应该是 RAID level 5.

让 RAID 控制器在 Linux下可用的第一步是利用支援该硬体的驱动程式建立一个订的核心。 Mylex DAC960 的
驱动程式可以在位於 ;的 Dandelion Digital Linux 网页下载

让您的让 RAID 阵列在 Linux下可用的最後一步是使用 ``fdisk''公用程式做一个有效的 partitions。这和您在
一个 IDE 或一般 SCSI 硬碟机所做的其实一样。查看 第4章,分割硬碟机 有关如何设定 partition 的资料

注意: DAC960 驱动程式支援最大每个逻辑设备 7 partition 。如果您想定义更多, 您需要设定多个逻辑设
备於 RAID 组态公用程式 ( 当开机时按下 - 进入设定公用程式).

一但您可以看见您的 RAID 阵列, 您应该起始您希望定义的任何 swap 区及档案系统。下面例是示起始位於第
二部硬碟第三个 partition的 swap区 , 以及位於第一部硬碟第一个 partition 的一个 ext2 格式档案系统:
/sbin/mkswap -c /dev/rd/c0d1p3
/sbin/swapon /dev/rd/c0d1p3
/sbin/mkfs.ext2 -c /dev/rd/c0d0p1


注意: 当合适的 swap/档案 系统建立时,上面``mkswap'' 及``mkfs.ext2'' 指令的 ``-c'' 选项会
enable bad-block 检查。加上这个选项事实上增加过程 所花的时间, 但进行这个检查看来是个好主意。

当您定义任何新的 swap 区後,您应该在 ``/etc/fstab'' 档加上一条以确保 swap 区在往後启动後会被真正使用。
就像上面的其他例,应该加入下面这一行:
/dev/rd/c0d1p3 swap swap defaults 0 0


最後,一但您的档案系统起始过了,您可以建立挂载点,然後将您想要的大档案系统搬到阵列中。在将阵列使用於生
产环境前先测试几天是个好主意。

有关 Mylex AcceleRAID 控制器的进一步消息,查看 Mylex 位於 ;网页,以及
Dandelion Digital DAC960 位於 驱动程式网页。有关更多一般 RAID
资讯 (包括硬体及软体解决方案),查看 Linux 高效益网页,位於 .

Linux 网管 123 --- 第11章. 在企业里的电脑使用 Linux -2.伺服器的迁移及延展性

为了支援多样的硬体选择,以及明速度及可信赖度, Linux 正面对因为资源需求增加而扩大规模的挑战。
这可以包括为了更多处理的需要而迁移到 SMP (对称多处理器) 配置, RAID levels 0 到 5 (不论是软体或
硬体驱动模式),等等。
有时,您会觉得您正在运作的 Linux 伺服器的硬体不再够用了,要进行重大的 Linux 版本升级,或者也许
迁移到不同发行版本的 Linux。当然要这样做有两种方法。保留原来的伺服器或是升级硬体 (要这麽做只要
关闭服务,备份资料, 进行所需的改变, 必要的话回复原来的资料),或者再彻底一些,将您的系统迁移到
新的硬体。

这一节将会集中在後者的情况,您将会实际上将您的各种服务从旧的伺服器移到新的上。当然有一些迁移的策
略, 然而这一节将会试图提供
一些您可以采用的粗略指引以确保您的转移结果成功,打扰使用者最少。

准备好所需的伺服器 ; 安装及组态 Linux 让您的新硬体可以被支援,以及任何所需的 daemon 及核心基础的
特性 (像是防火墙) 已经 enable。查看 第4章,以及 第10章,作一个订的核心 一节有关细节
建立您原来的服务 (像是 Apache 网页伺服器, Samba 或 Netatalk 档案及列印服务等) 且利用测试的数据使
用他们至少几天以确定所有的工作如同预期。查看 第7章,使用 Samba 进行 Windows 型态的档案及列印服务以
及 第7章,使用 Netatalk 进行 Macintosh 型态的档案及列印服务 有关细节。不要忘了确定您在 ``/etc/''
及``/etc/rc.d/'' 目录下所做的任何变动都已经按要求在新伺服器上做好了。记得移动 ``/etc/passwd'',
``/etc/group''下的使用者帐号资讯特别重要,以及当您使用 shadow 密码时的 ``/etc/shadow''!

在您的旧伺服器上关闭服务,以便将档案系统的变动减到最少。显然您不会希望当您储存资料到新伺服器时有
使用者在旧伺服器更新网页或接收 e-mail ! 以 root 身分,您可以用下列指令关闭大部分服务:
killall httpd atalkd smbd nmbd squid sendmail ftpd

上面的指令会关闭网页伺服,档案及列印服务, e-mail 伺服及 FTP 服务。(可能正在运作的比我上所列的更多
或更少。检查您的行程列表然後终止您认为合适的服务; 查看 第9章,管理行程 有关细节)

您可能需要编辑位於旧伺服器的 ``/etc/inetd.conf'' 档,使用 ``#'' 符号,释要更新档案系统的任何服
务 (像是 FTP, IMAP,及 POP3 服务) 。 然後以root身分键入 :
killall -HUP inetd

上面的指令会重新载入 TCP 包裹程式 ( Internet 服务的安全包裹程式) 如此一来您 ``/etc/inet.conf'' 档
中所 disable 的服务在未来的连接中不会被载入)。

现在您应该可以将资料移到另一部机器上。相同地,您需要将新伺服器的一切功能准备好,包括 Red Hat 发行
版未附上而您希望安装的额外软体。因此您需要备份位於``/home'', ``/var/spool''的软体,以及选择的档案
系统,如果有话像是 ``/archive''。这里有一个利用``tar''公用程式做一个资料压缩备份的例:
cd /
tar zcvpf /tmp/backup_data.tar.gz --exclude=var/spool/squid \
home archive var/spool

上面的指令会将您的``/archive'', ``/home''及 ``/var/spool'' 档案系统(或者子目录,取决於您如何建立
您的档案系统)写到一个备份档内 ,是一个名为压缩过的 ``/tmp/backup_data.tar.gz'' tar 格式档。确定您
有足够的空间备份,或是存到其他地方 !

小技巧: 您可以使用 ``du'' 公用程式帮忙决定所需的空间。例如,要决定 ``/archive/'' 及 ``/home/''
目录所需的空间,键入:
du -h -s /archive /home


要记住上面的指令会回报您资料的实际大小,但是如果您使用 tar 的``z'' 选项 (就像上面的例子) 压缩映
像档,您的使用需求会少一些 。将 ``du'' 所做的输出视为空间需求的最坏估计。


现在您可以将备份资料从 tar 档回存到新的伺服器。您可以直接由 NFS 回存 (查看 第7章,网路档案系统
(NFS) 服务 一节 有关如何组态 NFS 的细节), 或只利用 FTP 传回来然後在本地解开。这里是将上面示备
份回存的例 :
cd /
tar zxvpf /tmp/backup_data.tar.gz


下一步,必要的话,将 IP位置对调,这样子新伺服器可以在原来位址看到。

最後,您应该关闭系统然後重新起动伺服器以确定不会看到预期外的错误讯息。查看 第6章,关闭系统及重新启
动 一节 有关细节。

当您完成後,确定一切都是如同预期 ! 如果不是,您可以随时重新 enable 在旧伺服器上的任何服务然後重新
启动他们,如此一来使用者可以继续使用直到您解决在新伺服器上的问题 (要记住,如果您这麽做您将需要再进
行一次上面的步骤).

Linux 网管 123 --- 第12章. 保持伺服器安全的策略

和其他贩卖者的作业系统相比,Linux 必定可以被认为是安全的 -- 或是更安全。公认的,
随着 Linux 变得越来越普及, 将会变成很有吸引力的目标而吸引怪客集中精神致力於突破它。
随着一次一次的尝试,某些漏洞会被发现,然而 Linux 开放的本质往往使得这些漏洞很快的就被
修补了,而且安全注意通告被广泛地传播, 包括暂时的处理方式或更新软体的指南。
我不会假装是有关安全内容的专家, 但至少我明白这些内容,我相信致力於使某人的系统可能
的安全是战斗的更大一部份。虽然认知及致力於保持安全更新无法保系统的安全措施不会被突破,
但被突破的可能性大为减少。

虽然有些关於安全的外部服务被骇客利用来破解系统 (例如,IMAP daemon 的事件),我相信还有更多,
有决心的骇客可以从内部突破系统。与和外界通讯的少数服务相比,从 shell 可以有成千的指令和公用
程式,他们之中可能有一些漏洞可以被利用来突破安全防护 (我必须承认最近我负责维护的伺服器已经
在外部服务中做一些妥协)。

因为这个原因,即使您认为使用者完全可以信赖不必疑虑让他们存取 shell,我仍建议避免给使用者
shell 帐号除非他们绝对需要。要这麽做是因为怕使用者中有人用了薄弱的密码。一个外来的骇客,利
用这个薄弱的密码找到突破系统的途径,然後利用他们的内部空档找到进一步的弱点。

幸运地,您可以做一些大幅提高 Linux 系统安全的事。管有关系统安全的进一步讨论内容已经超出本
文围,下面清单提供一些您可以加强安全的最重要事项:

升级系统工具,应用软体,及核心 : 目前为止最常见的系统被破解的原因是未保持伺服器处於最新状态。
进行规律的系统核心,工具及公用程式升级将会确保您的系统不会充满已知可以被利用的项目,查看 第4章,
下载及安装 Red Hat 更新程式 一节,以及 第10章,保持系统处於最新状态的策略
Shadow passwords: 您确定应该使用 Shadow password ; 切换到这个密码格式很简单,查看 第6章,Linux
密码及 Shadow 档案格式有关细节
精明的密码管理: 确定密码,特别是您提供存取 shell 的使用者,是很强固而且常更换。同时如果您使用多
伺服器,不要在他们之中使用相同的密码 (如果这样做,万一怪客使用一个发现的密码侵入一部伺服器 ,他
就可以进入所有的)。
使用安全的 shell (ssh): 切换到使用 ``ssh'' 取代 ``telnet''。 Telnet 因为两个原因不安全 :
第一 , session 未加密,表示所有东西,包括使用者名称及密码,以一般文字模式传送。
第二,一个开放的 telnet port 是骇客第一个连接的 port 之一。

Ssh 提供了加密及压缩的连接,并且提供实质上比 telnet 更安全的连结。您可以在 Linux下当作 ssh
伺服端 (允许进入的安全连结)以及客户端 (送出安全的连结)。您可以找到二进位 RPM 套件,位於
。您会需要下面的档案 (在您阅读的时候可能有较新的版本):

ssh-1.2.27-5i.i386.rpm 基本套件
ssh-clients-1.2.27-5i.i386.rpm 送出连结的客户端
ssh-extras-1.2.27-5i.i386.rpm 一些便利的 perl script
ssh-server-1.2.27-5i.i386.rpm 接收连结的伺服端
注意: 上面所列的 SSH RPM 档是国际版本。 如果您住在美国或加拿大,您可以显择下载 U.S. 套件
(可能有较强的加密演算法); 这些套件在版本编号後有 ``us'' 取代 ``i'' 字尾。根据美国的法律,
输出强大的加密产品到美国或加拿大以外的地方是不合法的。希望有一天美国政府及司法会移去这个
限制 (Red Hat 因为这原因在他们发行版中不包括 SSH )

您的 Windows 用户会因为无法再连接到您的系统而拿枪对着你,他们也会因为有一些免费给 Windows
用的用户端软体而感到高兴:

“TeraTerm Pro” 用户端软体
;
“TTSSH” 用户端软体
;
“Cryptlib” 用户端软体
;
“Putty” 用户端软体
;
注意: 如果确定要切换到 ssh,确定您在所有的伺服器上安装使用。五部伺服器中让一部不安全只是浪费
时间,特别当您在所有的伺服器使用相同的密码时。

限制存取外部主机: 下一步您应该编辑 ``/etc/hosts.allow'' 以及``/etc/hosts.deny'' 档限制存取外部
主机的服务。这里是如何限制 telnet 及 ftp 存取的例。 首先,``/etc/hosts.allow'' 档: # hosts.allow

in.telnetd: 123.12.41., 126.27.18., .mydomain.name, .another.name
in.ftpd: 123.12.41., 126.27.18., .mydomain.name, .another.name


上面会允许位於 IP class C 的 123.12.41.* 及 126.27.18.* 任何的主机,以及位於 mydomain.name 及
another.name 网域的主机进行 telnet 及 ftp 连结。

下一步, ``/etc/hosts.deny'' 档:
# hosts.deny
in.telnetd: ALL
in.ftpd: ALL

关闭及解安装不需要的服务: 编辑您的 ``/etc/inetd.conf'' 档,而且 disable (亦即 .加上 ``#'' 符号
注释) 任何不需要的服务 (如果您依照上面的建议使用 ssh,您应该关闭 ``telnet'' 服务)。当您做好後。
以 root 身分键入 ``/etc/rc.d/init.d/inet restart'' 重新启动 inetd daemon 进行变更。
安装安全侦测系统: 考虑安装安全程式,像是 ``Tripwire'' (查看 http://www.tripwiresecurity.com/)
可以侦测入侵,以及 ``Abacus Sentry'' (查看 http://www.psionic.com/abacus/) 可以帮助避免他们。
要勤劳: 注意您的系统, 随时进行安全稽核 (可以只是简单检查可疑的密码档进入,查看您的行程表,检查
log 档中可疑的项目) 可以长久地致力於保持系统安全。此外,报告任何入侵的企图到适当的层级 -- 这
样做可能很麻烦,特别是当您的系统一个月中遇到好几次这种攻击, 但这种报告确保骇客会因为惩罚的威
胁而受到吓阻,以及确保其他系统(他们可能已经让步了) 保持安全。
假设您使用``RPM''公用程式安装及升级您的系统工具及应用软体,您可以利用下面的指令查核他们是否完
整: rpm --verify -a > /tmp/rpm-audit.txt


上面的指令会检查系统 RPM 资料库的相关档案资料,并且指示哪些档案已经被修改了,显示 '5'。这里是一
些审核资料的输出例 :
S.5....T /bin/ls
S.5....T /usr/bin/du
......G. /dev/tty5
.....U.. /dev/vcs5
.....U.. /dev/vcsa5
S.5....T c /etc/lynx.cfg
S.5....T c /etc/sendmail.cf

在上面的输出例,您可以看到七个档案的列表,其中四个档案被修改过了。现在,明显地如果您已经完全
自订过您的系统,可能有一些档案,或很多档案被修改过了。从 /etc/lynx.cfg 及 /etc/sendmail.cf 档的
简单核对,也许从是目视或从备份,可能会显示出您在系统上所做过的正当组态变更。

然而,上面例告知,有两个变更过的档案是二进位的可执行档。有可能这两个二进位档 ``ls'' 指令以
及 ``du'' 指令, 事实上是骇客所安装具有恶毒意图的特落伊档 ( 将``diff'' 指令用在任何从备份或 RPM
回存的档案上可能会显示出档案大小或其他不同点 ; 作为特落伊程式的进一步据.)

(更多有关 ``RPM''的资料,查看 第10章,使用 Red Hat 套件管理程式 (RPM) 一节.)

更多有关安全议题的资讯,一本很棒的书名叫“Securing RedHat 5.x”,文件位於
http://redhat-security.ens.utulsa.edu/。一个有关 Linux 保密及相关软体的很好来源,
位在 .

Linux 网管 123 --- 第13章. 其他的问题 1.系统损毁


Linux 以其效能及可靠性闻名於世。然而, 没有系统是完美的,且随着时间的增加您一定
会遇到意想不到的问题。幸运地,问题的出现是以月计 (和 NT 以日或以计相比),而这些
阻碍会越来越少。
--------------------------------------------------------------------------------

因为电源中断或系统发生问题後的档案系统损毁

虽然 Linux 是稳定的作业系统,它有可能无预期地出状况 (也许是因为核心有缺陷,或电源中断),
您的档案系统会没做解挂载,因此当 Linux 重新启动时会自动进行错误检查。
在大部分时候,因为没有将档案从缓区存到硬碟中所导致的档案系统问题较小,删除仍然标记为使
用中的 inode 也是。在大部分情况,档案系统检查可以自动地侦测并修复这种异常,待完成後
Linux 会继续正常进行启动程序。

档案系统问题可能更严重 (这些问题倾向於因为硬体故障所导致,像是硬碟机或记忆体坏掉 ; 必须
谨记在心的是:档案系统损毁的发生很频繁),档案系统的自动检查可能无法修护这个问题。这很常见,
但并非总是如此,当 root 档案系统自己损毁,在这种情况 Red Hat 启动程序会显示一个错误讯息然後
将您丢到一个 shell 中,让您手动修复档案系统。

当重新得到的 shell 解挂载所有的档案系统, 并将 root 档案系统挂载成“唯读”後,您就可以利用
合适的公用程式进行所有的档案系统检查。很可能您会用 e2fsck 处理损毁的档案系统,并期望它能解
决所发现的任何问题。

当您已经 (希望是) 修复任何档案问题,只要离开 shell 让 Linux 重新启动系统。

自然地,为任何无法恢复的档案系统问题做好准备,您应该准备好下面的东西 :

boot/root 救援磁片组, AND/OR
LILO 紧急开机片 AND

您重要档案的最近备份 -- 以防万一!

Linux 网管 123 --- 第13章. 其他的问题 2.哪里可以找到帮助

既然 Linux 是由 Internet 社群上的成员所发展, 也许最好获得帮助的地方是在下面的新闻群组贴个告:
杂项文章不涵盖在任何群组
comp.os.linux.misc

Linux 下的网路相关议题
comp.os.linux.networking

Linux 下的安全相关议题
comp.os.linux.security

Linux 安装及系统管理
comp.os.linux.setup

每个人都提出他们的意见 :-p
alt.linux.sux
非 Linux 特定的主题,在 comp.* 下有可能适合您需求的各种群组。这里是其中几个 :
Cisco 路由器 /access-server 产品系列
comp.dcom.sys.cisco

网页伺服器的杂项问题
comp.infosystems.

一般 unix (非 Linux特定) 问题
comp.os.unix

SMB 协定 (WfW/95/NT-型态的档案及列印服务)
comp.protocols.smb
还有一些网页上的有用来源。 利用 “Linux”做网页搜寻,或拜访下面的网页:
Linux 资源
;

Linux 文件计划
;

RPM 储存馆
;

Linux 软体列表
;

Linux 应用软体及公用程式指南
;

LinuxHardware.net: 硬体驱动程式支援
;

Linux 用户支援小组
;

Linux v2 资料总部
;

Samba 网页 (WfW/95/NT-型态的档案及列印服务)
;

Apache 网页伺服器
;

Squid HTTP 快取代理 Daemon
;
还有可以提供关於您问题有用解答的大量邮寄列表。这些用简单的网页搜寻就可以找到 (例如, 搜寻 ``linux raid mailing list'' 可能可以帮您找到有关在 Linux 下 RAID 议题的邮寄列表)。这里是我推荐的一些 ; 要订阅的话, 只要寄一封 e-mail 到下面的订阅位址,在本文中写着“subscribe” 就可以了:
Red Hat 邮寄列表
Red Hat 列表的说明: ;

GNOME 邮寄列表
GNOME 列表的说明: ;

KDE 邮寄列表
KDE 列表的说明: ;

Linux SCSI 邮寄列表
订阅位址:

Linux RAID 邮寄列表
订阅位址 :
最後,您可能会对下面两个网站感到兴趣,他们都是我个人最喜欢的“每日必读”。 SlashDot 涵盖了明确限定於 Linux 围的一般最新技术, FreshMeat 提供了最新的开放来源通告表。
SlashDot: 新消息
;

FreshMeat: 开放来源通告表

Linux 网管 123 --- 第13章. 其他的问题 3.附带文件的指示


有关 Linux 及其应用软体的文件多得不可思议。大部分可以在网页或书店找到,但您可能发现您已经
拥有了很多有用的文件,在 Red Hat Linux安装过程中会载入成为一部份。
man 是当您想知道如何使用指令时必须看的。例如,当您想知道如何使用``tar'' 公用程式,您可以
键入 ``man tar'' 然後可以看见很多有关 tar 的描述,包括它的命令列选项。

您可以在 ``/usr/doc/'' 目录找到一般资讯。在这里可以在子目录下找到包含指令和公用程式的文件,
常见问题 (FAQ) 文件,以及关於很多主题的很好指示的 HOWTO 文件, 像设定网路,或安装对日文的支援。

您应该看看 ``/usr/info/'' 目录对於公用程式,函式馆,及应用软体像是 emacs 的指导。

最後,您应该看看 Red Hat 使用者的常见问题 (FAQ) 文件,位在
;,那里有很多关於 Red Hat 发行版 Linux 的有用资讯。

阅读(1255) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~