Linux系统维护与进程管理7
7.1 用户行为查看
Linux是多用户的操作系统,每个用户都能执行不同的程序,访问不同的文件,作为管理员需要随时掌握当前用户状态和行为。本节将介绍与此相关的命令

w命令查看当前用户的系统行为,可以执行 w命令:
# w
当用户较多时,使用 w命令还可以查看某一个具体的用户:
# w root
who命令查看系统当前有哪些用户登陆,使用 who命令:
who [参数 ] [用户 ]
-H:显示各栏位的标题信息列
-i或 -u:显示闲置时间
-q:只显示登陆系统的帐号名称和总人数范例:使用 who显示系统用户。
# who
# who -Hu
last命令
last命令查看最近有哪些用户曾经登陆过系统:
last [-adRx][-f <记录文件 >][-n <显示列数 >][帐号名称
...][终端机编号,..]
-a:在最后一行显示登陆系统的主机名称或 IP地址,
-x:显示关机,重新开机,以及执行等级改变等信息
-f <记录文件 >:指定记录文件。
范例:使用 last命令显示最近登陆系统的用户。
# last
7.2 Linux进程管理
Linux系统中,用户可以执行多个程序,每个程序又会有多个进程,某些进程可能占用大量的系统资源,某些进程又可能为非法或危险的,这就造成系统负载过重。作为管理员,必须要了解如何查看系统进程并进行相应处理,以维持系统的整体性能。
进程查看
Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性:
( 1)交互进程:由 shell启动的进程
( 2)批处理进程:这种进程和终端没有联系,是一个进程序列。
( 3)守护进程:在后台持续运行的进程进程查看命令 ps
使用 ps命令查看系统的进程情况。该命令可以确定有哪些进程正在运行以及运行状态等。
ps [参数选项 ]
a 显示所有进程,包括其他用户的进程
u 显示基于用户的信息
x 显示所有进程,不以终端来区分
-t tty 显示属于指定终端 tty的进程
U user 显示 user用户所拥有的进程进程查看命令 ps(续 1)
例 1:查看当前进程状况。
# ps
例 2:查看进程的详细情况。
# ps -u
例 3:查看每位用户的全部进程。
# ps -aux
进程查看命令 pgrep
pgrep是通过程序的名字来查询进程的工具。
pgrep [参数选项 ] 程序名
-l 列出程序名和进程 ID
-n 只显示最近的一个符合条件的进程
-v 显示不符合条件的进程范例:列出 named的进程
# pgrep named
# pgrep -l named
系统监控命令 top
使用 top命令动态监控系统性能。 top命令可以监控系统的内存、交换分区和 CPU的使用率等,它会定期更新显示内容。
top [参数 ]
c:显示每个程序的完整指令。
q:持续监控程序执行的状况。
d<间隔秒数 >:设置 top执行状况的间隔时间。
n<执行次数 >:设置监控信息的更新次数。
# top
进程启动在 Linux系统中每个进程都具有一个进程号,用于系统识别和调度进程。启动一个进程有两个主要途径
:手工启动和调度启动,后者是事先进行设置,根据用户要求进行自行启动。
1.手工启动用户输入命令直接启动一个进程便是手工启动。
( 1)前台启动当用户键入一个命令,ls -l”,就已经启动了一个进程,而且是一个前台的进程。
( 2)后台启动在命令结尾加上一个 &号
#troff –me notes > note_form &
两种方式的共同特点是新进程都由当前 shell进程产生
2.调度启动
( 1) at命令
at命令用于在指定时刻执行指定的命令序列。 at命令有两种使用方式:
在命令提示符下输入,at <时间 >”,然后按回车键。
将各个命令写入 shell脚本,然后按照以下格式设置在指定时间执行 shell脚本中的命令:
at 时间 –f 脚本文件其中 -f参数指定脚本文件名。
调度启动(续 1)
例 1:指定在今天下午 5:30执行某命令。假设现在时间是中午 12:30,2008年 3月 25日,其命令格式可以采取如下几种形式:
at 17:30
at now + 5 hours
at 17:30 25.3.08
例 2:在三天后下午 4点执行文件 work中的作业
at -f work 4pm + 3 days
调度启动(续 2)
( 2) atrm命令该命令用于删除指定要执行的命令序列:
atrm 作业[作业 …… ]
( 3) atq命令该命令用于查看安排的作业序列。
( 4) batch命令
batch用低优先级运行作业,是在系统负载较低,资源比较空闲的时候执行命令。
调度启动(续 3)
( 5) cron命令使用 cron命令不断重复一些命令。 cron命令的执行不需要用户干涉,需要用户修改的是 crontab中要执行的命令序列,该序列由 crontab命令形成。
crontab命令用于安装、删除或者列出用于驱动 cron
后台进程的 crontab文件。
在 /var/spool/cron下的 crontab文件不可以直接创建或者直接修改,必须通过 crontab命令得到。
进程的挂起、恢复和终止
1.进程挂起及恢复在键盘上按 <Ctrl+z>,即可挂起当前的前台作业。
要恢复进程执行时,有两种选择:
( 1)用 fg命令将挂起的作业放回到前台执行
( 2)用 bg命令将挂起的作业放到后台执行进程的挂起、恢复和终止(续 1)
例如,使用 <Ctrl+z>将正在使用的 cat进程挂起,然后使用 bg命令在后台启动,接着键入,ls”查看目录。
查看完毕后,使用 fg命令将 cat带回前台运行。
# cat> test.file
<Ctrl+z>
# bg cat
# ls
# fg cat
进程的挂起、恢复和终止(续 2)
2.进程终止使用 <Ctrl+c>中断前台进程;
使用 kill命令中断后台进程。
例如,要终止系统中的 named进程先使用 ps命令查看进程,得到 named进程对应的 PID
( 3576),使用 kill命令来终止此进程:
# ps -aux | grep named
# kill 3576
7.3 日志管理日志文件( Log files)是记录系统消息的文件,包括内核、服务、在系统上运行的应用程序等。
多数日志文件位于 /var/log目录中,可以使用文本编辑器(如 vi)来查看日志。
有三个主要的日志子系统:
连接时间日志
进程统计
错误日志