⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000016.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;ruster&nbsp;(尘埃*星辰*领悟),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;第九章&nbsp;管理、维护和排错(上)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Thu&nbsp;Dec&nbsp;21&nbsp;13:52:00&nbsp;2000)&nbsp;<BR>&nbsp;<BR>第9章&nbsp;&nbsp;&nbsp;管理、维护和排错&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;本章要点:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;本章归纳系统管理员的日常工作任务,对于系统灾难的处理,以及如何制作更高性能&nbsp;<BR>的Linux服务器。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本章具体包括以下内容。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;系统的日常维护内容,如开关机,备份和恢复&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;系统任务的调度&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;对系统进行监控&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;设置强大的Linux服务器&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;9.1&nbsp;启动和关机&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;相信大家肯定都知道开关机器的步骤。与任何UNIX系统一样,Linux系统只要上电就可&nbsp;<BR>以开机,关机使用shutdown命令。但是在日常维护中,开关机仍然是必须学习的内容,&nbsp;<BR>因为在开关机的过程中可能会有一些特殊的问题,而且你必须准备好从灾难中恢复。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;当你给系统加电的时候,Linux将自动从lilo开始执行,启动的过程我们在第四章已经&nbsp;<BR>介绍过了。通常我们不需要对系统的启动作任何干预,Linux就可以自动执行启动脚本直&nbsp;<BR>到出现登录提示符login:。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;本节实际是FAQ的性质,介绍一名管理员在启动和关闭系统的过程中可能碰到的问题,&nbsp;<BR>这些东西是非常重要的,但是在具体的发行版本中的显示信息可能和我们的情况不同,&nbsp;<BR>如果你理解了我们说的内容,那么它实际是很简单的。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;当/etc/rc.sysinit开始执行的时候,系统必须首先mount&nbsp;上文件系统。然而如果某个&nbsp;<BR>文件系统在上次关机的时候没有清洁地被卸下,那么系统将会调用fsck程序来检测根文&nbsp;<BR>件系统。一般情况下,fsck会正确修复文件系统中的错误。然而,如果发生了致命错误&nbsp;<BR>,那么fsck会退出,这时系统启动脚本会出现类似于这样的提示:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;***&nbsp;An&nbsp;error&nbsp;occurred&nbsp;during&nbsp;the&nbsp;file&nbsp;system&nbsp;check.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;***&nbsp;Dropping&nbsp;you&nbsp;to&nbsp;a&nbsp;shell;&nbsp;the&nbsp;system&nbsp;will&nbsp;reboot&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&quot;***&nbsp;when&nbsp;you&nbsp;leave&nbsp;the&nbsp;shell.&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;然后启动脚本会调用一个sulogin程序,这个程序会提示你输入超级用户口令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;Give&nbsp;root&nbsp;password&nbsp;for&nbsp;maintenance&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;(or&nbsp;type&nbsp;Control-D&nbsp;for&nbsp;normal&nbsp;startup):&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;输入超级用户口令之后,你将得到一个shell,在这个shell中你可以使用fsck命令修&nbsp;<BR>理有问题的文件系统,关于fsck程序的细节请参考第三节。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;fsck结束之后,用exit命令退出这个shell,系统将会重新启动。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果由于某种原因你想关闭系统(关闭系统还要理由?当然,原则上,服务器的行为&nbsp;<BR>就应该是永不关机。对于Linux系统,一年不停机是正常的事情),可以使用shutdown命&nbsp;<BR>令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;shutdown&nbsp;[时间]&nbsp;[信息]&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;时间参数定义在什么时候关机,基本的格式是hh:mm,比如12:30代表12点30分。不过&nbsp;<BR>更多的人喜欢用+[分钟],例如shutdown&nbsp;+3代表3分钟后关闭系统。一个特殊的字符串n&nbsp;<BR>ow表示+0,即立刻关机。信息参数用来向连接在系统上的所有用户发送一条消息,例如&nbsp;<BR>,想要在两分钟后关闭系统,并且向所有用户发送一条“system&nbsp;now&nbsp;halted.Please&nbsp;s&nbsp;<BR>ave&nbsp;your&nbsp;work”的信息,命令是&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;shutdown&nbsp;+2&nbsp;'system&nbsp;now&nbsp;halted,Please&nbsp;save&nbsp;your&nbsp;work'&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果要重新启动机器,可以使用shutdown的-r参数,例如&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;shutdown&nbsp;now&nbsp;–r&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;也可以用reboot命令:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;reboot&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外,在第四章我们曾经介绍过,一般的系统在/etc/inittab文件中定义了对于热启&nbsp;<BR>动的组合键(Ctrl+Alt+Del)的缺省行为:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;ca::ctrlaltdel:/sbin/shutdown&nbsp;-t3&nbsp;-r&nbsp;now&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;-t3表示延迟三秒。因此,你可以使用这个组合键来重新启动计算机。不过要注意,对&nbsp;<BR>于很多Linux系统,这个组合键必须是左Ctrl+左Alt+Del,否则无效。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果你不喜欢这个功能,只要在/etc/inittab中将这一行删除,并且重新启动计算机&nbsp;<BR>就可以了。这样,只有超级用户才能关闭系统。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;在关闭系统的过程中,系统会在/etc目录下生成一个nologin文件,并且在系统例行任&nbsp;<BR>务结束准备彻底关闭系统时删除,如果由于某种原因这个删除过程没有被正确执行,那&nbsp;<BR>么在重新启动之后,除了root以外的其它用户就无法登录到系统上。如果你发现除了ro&nbsp;<BR>ot以外所有其它用户都不能登录系统,检查/etc目录并且删除nologin文件。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;在启动过程中,如果发生DNS失败,amd程序找不到所需要的网络资源等等情况,那么&nbsp;<BR>像sendmail,httpd,amd等等程序会花费很长的时间去验证错误,系统在这过程中将失&nbsp;<BR>去响应,碰到这种情况,只需耐心等待,经过一段时间后系统就会正确启动。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;在某些情况下,系统的情况会变得十分糟糕,以至于按照一般的方式启动已经不可能&nbsp;<BR>。这种情况下,通常的处理方法是:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果系统还能启动通过sysinit脚本,那么使用单用户方式启动,启动方式在第四章已&nbsp;<BR>经做过介绍。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果lilo已经被破坏,那么用DOS软盘引导系统,并且用loadlin程序引导系统到单用&nbsp;<BR>户状态,例如,你的Linux&nbsp;根分区在/dev/hda1,那么执行&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;loadlin&nbsp;vmlinuz&nbsp;init=/sbin/init&nbsp;1&nbsp;root=/dev/hda1&nbsp;ro&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;如果由于某种原因/分区已经出现问题,比如/bin和/sbin目录被破坏,那么这时唯一&nbsp;<BR>的方法是从一个别的Linux系统引导,然后将/分区mount到新系统上进行处理。这可以通&nbsp;<BR>过把硬盘挂到别的机器上进行,或者可以考虑制作一张小型Linux系统软盘。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;制作Linux启动软盘是一件比较复杂的事情,建议你到网上找到一个适合你的系统的启&nbsp;<BR>动软盘镜像。如果你的系统实在比较特殊而没有现成的启动软盘可以使用,那么你可以&nbsp;<BR>参考Linux的Boot-HOWTO。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外一种非常糟糕的情况是/dev中的设备项目损坏,这时所有依赖于该设备的程序都&nbsp;<BR>无法工作。解决的方法是用mknod重新建立这个设备文件项目。另外,有时为了增加tty&nbsp;<BR>的数目或者支持多余的调制解调器,你也需要建立设备项目。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mknod的用法是:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mknod&nbsp;[设备名]&nbsp;[设备类型]&nbsp;[主设备号]&nbsp;[次设备号]&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;设备类型是c或者b,c代表原生/字符设备,而b代表块设备。主设备号和次设备号都是&nbsp;<BR>Linux核心用来标记设备类型的选项,如果要了解某个设备的设备号,可以参考核心文档&nbsp;<BR>。不过,实际中的问题远远没有这样复杂,因为/dev/下的设备文件已经是相当完备的,&nbsp;<BR>你只要备份这个目录项目并且正确恢复就行了:&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;#&nbsp;ls&nbsp;-l&nbsp;/dev/hda1&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;brw-rw----&nbsp;&nbsp;&nbsp;1&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;disk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3,&nbsp;&nbsp;&nbsp;1&nbsp;May&nbsp;&nbsp;6&nbsp;&nbsp;1998&nbsp;/dev/hda1&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;显然,/dev/hda1设备的主设备号是3,次设备号是1。同样,/dev/hda2设备主设备号&nbsp;<BR>是3,次设备号是2。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;一个有趣的用处是增加分区。Linux允许每个物理硬盘64个分区,不过缺省的情况下你&nbsp;<BR>只能用fdisk程序分出16个,因为/dev下面只有16个hda*的项目。如果你要使用更多的分&nbsp;<BR>区,那么&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mknod&nbsp;/dev/hda17&nbsp;b&nbsp;3&nbsp;17&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;mknod&nbsp;/dev/hda18&nbsp;b&nbsp;3&nbsp;18&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;……………&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;这样就可以使用更多的分区了。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;9.2&nbsp;系统记录&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;UNIX经常被看成一个复杂而古怪的系统,不过,在系统管理员看来,它其实比许多自&nbsp;<BR>称容易使用的系统更容易管理,尤其在排错的过程中,这是因为它提供了大量的运行记&nbsp;<BR>录,诸如在/var/log目录下面的那些记录文件是系统管理员解决问题的第一手资料。不&nbsp;<BR>幸的是,UNIX著名的前后不一致和不兼容的特点使得在/var/log下面寻找登记文件成了&nbsp;<BR>系统管理员的一件新工作。我们在这一节将讨论如何分析和建立系统记录文件。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外一个重要的功能是对用户的各种操作记账,包括用户使用的CPU时间,进行的操作&nbsp;<BR>消耗的资源等等,尽管对Linux来说对每个用户使用的CPU时间收费似乎有些不现实,但&nbsp;<BR>是我们决定仍然阐述这个功能。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;9.2.1&nbsp;&nbsp;syslog&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;UNIX的系统记录文件隐藏在硬盘的各个地方,尽管它们理论上都应该处在硬盘的/var&nbsp;<BR>/log目录下,但是这个目录下的文件实在是太多了,一个一个文件地查找各种登记信息&nbsp;<BR>简直是一种自虐行为。另外,尽管缺省配置已经不错,但是你可能仍然不喜欢它对于某&nbsp;<BR>些信息的记录方式,或是有自己的某种要求。比如,想按照上一章说的将ipchains的记&nbsp;<BR>录信息保存下来以便分析,或者类似的其他目标。所有这些都需要你了解UNIX系统记录&nbsp;<BR>信息的方式。&nbsp;<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;几乎所有的UNIX系统都使用syslogd程序进行系统记录,Linux也不例外。实际上,sy&nbsp;<BR>slogd程序就是一个信息过滤器,用户程序可以用它提供的openlog,syslog和closelog&nbsp;<BR>函数向它提供消息,而它按照系统设定的规则把这些消息分门别类,存放在各个文件里&nbsp;<BR>面。如果syslogd程序没有启动,那么应用程序输出的消息就得不到处理,这种情况下,&nbsp;<BR>这些消息通常被直接输出到系统终端上。&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -