天天看点

19.Linux系统管理

对Linux系统进行的常用的管理工作,系统启动和服务管理、进程管理、自动任务管理、日志管理和存储管理等

1、 系统启动过程与运行级别

Linux启动过程

A进行硬件自检POST,然后读取0-0-1(0柱面0磁道第一个扇区)的MBR中的引导程序并加载

B启动引导程序负责引导磁盘分区中的OS,引导磁盘分区中的OS启动,加载Linux内核程序

C内核程序负责OS启动的前期工作,并加载系统的第一个进程INIT进程

D系统中第一个进程是INIT进程,该进程根据其配置文件执行相应的启动程序,并进入到相应的启动级别

E在不同的运行级别中,根据系统的设置启动相应的服务

F启动过程的最后将运行控制台程序,其实用户输入帐号和密码进行登录

运行级别:是0-6,共7个运行级别

0:关机,建议系统默认的运行级别不要设为0,否则系统不能正常启动

1:单用户模式:只允许root用户对系统进行维护

2:多用户模式:不加载网卡,不能使用NFS

3:完全多用户模式:字符界面的工作模式

4:未分配使用

5:图形界面的多用户模式,运行窗口程序,允许在图形界面下进行操作

6:重启:不要把默认运行级别设置为6

显示和改变运行级别

#runlevel  显示当前和上一个运行级别    “N”为为不存在上一个运行级别

#init 运行级别    改变运行级别

可使用命令:

#init 0   关机

#init 6    重启

查看和设置各运行级别的服务状态(启动是随着系统的启动而运行)

#chkconfig --list  服务名  查看某一个服务的启动状态(直接回车是查看所有服务的启动状态)

#chkconfig –level 运行级别  服务名  on/off  设置某个独立服务服务在哪些运行级别下是启动还是关闭

对于受xinetd管理的服务(超级网络服务),不存在某个运行级别启动状态,设置时无需指定运行级别

#chkconfig –list 服务名     查看某个服务的状态

#chkconfig 服务名 on/off     设置某个服务的状态

注意:设置了某个服务的启动后,还需要xinetd服务启动才生效,设置xinetd启动

#service xinetd restart

也可使用命令

#ntsys   回车后,使用空格在出现的窗口中进行服务状态的选择

系统初始化进程:

Linux系统第一个进程是INIT进程,进程号PID永远为1,系统启动会安装其配置文件内容引导其他程序。INIT的配置文件是/etc/inittab,解析此文件:

每一行内容的格式:id:runlevel:action:process。确定某个进程在哪些运行级别下以何种方式来运行

Id字段:标识一个在inittab文件中唯一的配置记录,由1-4个字符组成

Runlevel字段:指定该记录在哪些运行级别中运行,可以是单个,也可以是多个级别

Action字段:描述记录将执行哪种类型的动作,常见的有initdefault(系统启动默认进入的级别)、sysinit(指定后面的脚本在其他进程之前运行)、wait(init进程将等待wait后程序的运行结束)、ctraaltdel(使用此组合键进行重启操作)powerfail(当UPS发来断电信号时系统运行的命令,此命令指定供电恢复时运行的命令)、respawn(后面的进程结束后会重新运行)

Process字段:是启动进程所执行的命令

系统初始化脚本:

Linux系统中,inittab文件中指定rc.sysinit作为系统的初始化脚本,rc.sysinit保存在/etc/rc.d/下,系统启动时被调用执行,完成系统初始化的工作。Rc.local脚本同样保存在/etc/rc.d/目录下,在rc.sysinit执行完后执行,系统管理员可以把自定义的命令保存于此

2、 进程类管理命令

什么是进程:程序是保存在存储介质中的可执行机器代码和数据的集合,进程是在计算机处理器(CPU)执行中的计算机程序。两者关系:

A程序是保存在外存中的可执行代码和数据,是静态保存的数据

B进程是程序代码在处理器中的运行,是动态执行的代码

C操作系统执行程序时,将程序代码有外存读取到内存中,驻留在内存中的程序代码作为进程动态的执行

D对Linux来说是个多进程OS,每个程序启动会创建一个或多个进程,与其他进程共同运行在Linux内核空间,每个进程是一个独立的任务,依据规则被CPU交替执行。每个单独的进程运行在自己的虚拟地址空间,并且只能通过安全的内核管理机制与其他进程交互

进程查看:

使用ps命令:是一个静态查看命令

#ps aux 查看系统中包含系统进程和用户进程在内的所有进程

#ps –ef  可以查看父进程

使用top命令:可以动态显示系统状态和定时刷新,平时使用最对,但是占用系统资源。显示包括CPU、内存占用情况、进程列表和每一个进程的运行状态等,在其界面中可以修改进程优先级,停止某个进程,按照对CPU和内存占用排序等

使用pstree命令:使用树形结构来查看进程

进程控制:手工启动(直接执行一个命令)和调度启动(事先设置,自动启动)

手工启动:

前台运行:直接执行一个命令,可以启动一个或多个进程

后台运行:在执行命令时,在后面添加“&”符号,不占用操作窗口。对于在前台运行的进程,可以使用“CTRL+Z”来调入后台运行。查看后台运行的进程使用命令:#jobs ,也可以使用命令把后台进程调入到前台运行: #fg 后台进程编号

调度启动:使用at命令和crontab命令

at命令指定某个时间一次性在系统中运行

crontab命令可以指定周期性运行的任务计划

#at –t MMDDhhmm   回车后写入要执行的命令,完成后使用Ctrl+D结束命令输入。MMDDhhmm是月份、日期、小时、分钟

#at 时间   今天或者明天执行的计划

#atq   查询还没有执行的at计划任务

#atrm  任务号   删除对应任务号的计划任务

终止命令运行:可使用“CTRL+C”组合键强制当前终端中运行的命令,如果无法正常终止,可使用命令先查看此进程的PID,然后使用命令

#kill -9 PID   强制结束此进程的运行

3、 系统任务的定时运行。crontab命令

软件包组成:vixie-cron软件包,此软件包默认是安装的,使用命令:

#rpm –q vixie-cron         查看软件包安装

还包括软件包“crontabs”软件包,实现对Linux系统的定时任务管理

Cron服务的启动和停止:cron服务的守护进程是crond

查询crond服务状态

#service crond status

停止和启动crond服务

#service crond stop

#service crond start

#service crond restart

设置其开机运行状态

#chkconfig --list crond

#chkconfig --level 35 crond on

Cron任务的格式:

   运行时间  command(运行的命令)

   如:01 08 * * * date

运行时间:分钟(0-59)小时(0-23)天(1-31)月(1-12)周(0-7,0和7代表周日)

设置任务计划(用户自定义任务计划)

所有用户的自定义的任务计划都保存在/var/spool/cron目录中,以用户名起名的目录

查看任务计划:

#crontab –l  查看当前的cron任务列表

编辑任务计划:有两种方法

A 覆盖原有的cron任务,只存在当前设置的任务

#crontab    直接回车,然后输入时间和命令,使用“CTRL+D”结束输入

B 调用vi编辑器对cron任务进行编辑

#crontab –e    调用vi编辑器进行编辑

作为网络管理员可以对其他用户设置任务计划

#crontab –e  用户名   

cron任务的删除

#crontab –r 删除用户现有的cron任务

Cron的相关文件

系统设定的任务计划,保存在“/etc/crontab”中,crond进程每分钟都检查/etc/crontab文件、/etc/cron.d/目录以及/var/spool/cron/目录的改变,发现更改,载入内存运行

解析系统任务配置文件/etc/crontab

SHELL:设置cron使用的shell环境

PATH:执行命令时的搜索路径

MAILTO:发送邮件给用户

HOME:执行命令时使用的主目录

其中有每小时、每天、每周、每月的任务,分别保存在:/etc/目录中,文件名是cron.hourly、cron.daily、cron.weekly、cron.monthly

帮助文件,可查看vixie-cron软件包的文件列表中的帮助信息

4、 日志管理

功能:记录Linux系统中的消息的文件,不同的日志文件记录不同的内容

日志文件存放位置:都放在/var/log/目录中,对于大型的服务程序可以在/var/log/下建立子目录来存放自己的日志文件

分类:两大类

A应用程序独立管理的日志文件,只管理自己的日志文件,格式不统一和固定

B受syslogd统一管理的日志文件,有相同的格式。此服务的配置文件是/etc/syslog.conf,都是系统中重要的日志文件

日志文件分析:

日志文件是纯文本文件,每一行一个消息,使用more或less命令查看,使用grep命令过滤查找

每一行有4个字段组成

A时间标签:消息发出的日期和时间

B主机名:生成消息的计算机名

C生成消息的子系统的名称

D消息:消息的内容

5、 存储与备份管理

磁盘配额

在Linux中,即可以针对用户做配额,也可以针对组设置配额;还可以从用户占用磁盘空间大小和拥有的文件数量来进行,系统根据文件的属主和属组来判断。使用软件包是quota,可使用命令#rpm –q quota查询

软限制和硬限制:

软限制:用户在文件系统中可拥有的最大吸盘空间和最多文件数量,在某个宽限其内可以暂时超过这个限制

硬限制:用户拥有的磁盘空间和文件数量,绝对不允许超过这个限制

用户限制和组限制

用户限制:对指定用户的磁盘空间限制和文件数量限制,只对该用户生效

组限制:指定用户组的磁盘空间限制和文件数量限制,配额对组中的所有用户生效

设置配额的步骤:

A修改“/etc/fatab”文件

针对要设置配额的分区添加用户限制和组限制的选项:usrquota和grpquota

B重新挂载文件系统

可以使用命令:#mount –o remount 分区

也可以重新启动生效

C创建配额文件

使用命令:

#quotacheck –cmug  分区

或者#quotacheck –cmugf  分区    强制检查分区和创建文件

选项中的“u”是针对用户生成文件,“g”是针对组生成文件,不一定两者都设定,根据需要选择,“m”是重新挂载文件系统,“c”创建配额文件

D启用配额

#quotaon  分区

E设置配额

针对用户

#edquota –u 用户名   -u可省略

针对组

#edquota –g组名

对用户进行文件数量的限制不实用

查看配额

#quota –u 用户名

#quota –g  组名

#repquota  分区      显示此分区针对每个用户的配额设置

文件的归档和备份

Tar命令介绍

A文件和目录进行归档

#tar cf 生成的tar文件名 需要备份的文件或目录名

c是创建文件,f后指定文件名。为明确文件类型,归档文件以.tar为后缀

对文件和目录进行压缩备份

#tar czf 生成的tar.gz文件名 需要备份的文件或目录名

z是对归档文件进行压缩

B查看归档中的文件列表

查看tar归档文件中的文件或目录列表

#tar tf tar文件名

t是查看归档文件中的文件列表

查看压缩归档文件中的文件或目录列表

#tar tzf tar.gz文件名

C使用tar命令恢复归档文件

恢复tar备份文件

#tar xf tar文件名

x是表示释放归档文件

恢复压缩的tar备份文件

#tar xzf tar.gz文件名

恢复归档文件到指定目录

#tar xf tar文件名  -C  目录名

#tar zxf tar.gz文件名  -C  目录名

继续阅读