免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: keigopan
打印 上一主题 下一主题

Linux 网管 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2003-04-30 10:09 |只看该作者

Linux 网管

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”找到,位於
http://www.xnet.com/~blatura/linapp2.html#back. 当决定好备份方式,您可能要考虑下列几点因素:

可携性 - 备份的可携性 (亦即. 从一个 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”以解挂载磁带,或在磁带图示上敲一下,这
样磁带会回带然後跳出。

论坛徽章:
0
32 [报告]
发表于 2003-04-30 10:10 |只看该作者

Linux 网管

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 指令两三次就会跳到档案真正开头的地方。

论坛徽章:
0
33 [报告]
发表于 2003-04-30 10:10 |只看该作者

Linux 网管

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

论坛徽章:
0
34 [报告]
发表于 2003-04-30 10:11 |只看该作者

Linux 网管

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”身分登录时 -- 因为您可能因为删错了档而感到後悔。

论坛徽章:
0
35 [报告]
发表于 2003-04-30 10:12 |只看该作者

Linux 网管

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 提供启动及停止一些程序的较好方法,在後面的 行程的启动及停止 提及

论坛徽章:
0
36 [报告]
发表于 2003-04-30 10:12 |只看该作者

Linux 网管

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'' 选项看来不支援相同的服务)

论坛徽章:
0
37 [报告]
发表于 2003-04-30 10:12 |只看该作者

Linux 网管

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 或程式 (或到任何其他储存媒体的符号连结)放到
合适的目录内,就可以不管他们了。

论坛徽章:
0
38 [报告]
发表于 2003-04-30 10:13 |只看该作者

Linux 网管

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 的储藏库 http://rufus.w3.org/linux/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 型式放在
http://www.rpm.org/maximum-rpm.ps.gz. (如果您决定列印这个 postscript 文件,考虑您可能需要很多纸张 !)
这是一份较小的指南, ``RPM-HOWTO'', 在 http://www.rpm.org/support/RPM-HOWTO.html 也可以拿到。

论坛徽章:
0
39 [报告]
发表于 2003-04-30 10:14 |只看该作者

Linux 网管

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 。

论坛徽章:
0
40 [报告]
发表于 2003-04-30 10:14 |只看该作者

Linux 网管

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

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


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

不是所有的产品升级通告都会贴到 comp.os.linux.announce,因此造访您所使用软体的网页
及 FTP 站也是一个好主意。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP