[修改回复]
删除回复
插入表情:
宋体
楷体
幼圆
黑体
隶书
华文行楷
方正舒体
Arial
Arial Black
Arial Narrow
Century Gothic
Comic Sans MS
#0000FF
#8A2BE2
#DEB887
#5F9EA0
#7FFF00
#000000
#D2691E
#FF7F50
#FF0000
#DC143C
#99ccff
字体颜色
#FFF8DC
#00FFFF
#EE82EE
#F5DEB3
#FFFFFF
#F5F5F5
#FFFF00
#9ACD32
使用帮助
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 的储藏库 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 也可以拿到。
不能为空
不能含有 ` 字符,字数8000以内
(CTRL+ENTER提交)
关闭窗口