系统监视

系统监视

1、了解系统状况
• uname
:显示系统信息
• hostname
:显示主机名
• last
:列出最近的用户登录
• lastlog
:列出每一个用户的最近登录情况
• free
:显示内存使用状况
• top
:系统监视器

uname
uname -a
,可以用来显示系统的完整鉴定信息,包括主机名、核心版本等。

例如:
[root@stationxx root] # uname –a
Linux stationxx.example.com 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003
i686 i686 i386 GNU/Linux
hostname
hostname
指令可以用来临时改变主机名。如果想永久更换主机名,需要编辑/etc/sysconfig/network
last
last
指令显示系统最近的登录状况,包括用户名、来自、登录时间。例如:
[root@stationxx root] # last
root tty1 Thu Jul 31 09:24 still logged in
root pts/0 192.168.103.101 Thu Jul 31 10:13 still logged in
…………..
top
q退出top。另有gtop,则是top在图形界面下的一个优化版本。

 

2、进程
系统通过进程来完成工作
每一个进程都有一个独立的进程号,系统通过调用进程号来调度操控进程
系统的原始进程是init
– init
PID总是
1
一个进程可以产生另一个进程,除了init以外,所有的进程都有父进程

进程
    Linux
系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。进程的一个比较正式的定义是在自身的虚拟地址空间运行的一个单独的程序。进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。
   
进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bashtcsh)的一个特性,使用户能在多个独立作业间进行切换。
    
每个进程都有自己的进程号,除了进程号每个进程通常还具有优先级、私有内存地址、环境、系统资源、文件描述、安全保证。象人类一样,一个进程可以同时身为一个进程的子进程,及另一个进程的父进程。我们可以使用pstree –p 查看进程间的关系和进程号。

 

21查询进程
查询进程的指令:
– ps [option]
• pstree
可以用来以树状的方式表现进程的父子关系
• top
是一个常用的系统监视工具。

ps
ps
的常用参数:

-a
显示所有进程,但不包括不隶属于任何一个终端的进程
-u
显示不属于任何一个终端的进程,诸如各类系统网络服务的后台程序
-l
以长模式显示进程的信息
-u
显示进程的拥有者信息
ps的参数中,是否加-号,表示不同的参数。
ps
显示中的STAT,可以为:
•R
:正在运行。
•S
:进程睡眠中,通常可以因事件发生而被唤醒。
•T
:进程已停止。
•D
:进程睡眠中,除非发生指定事件,否则不会被唤醒。
•Z
:僵尸进程,例如未能被父进程回收的子进程。通常是一个系统bug或非法操作。
•<
:高优先级进程。
•N
:低优先级进程。
top
14:01:53 up 4:47, 3 users, load average: 2.05, 2.04, 2.01
82 processes: 79 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 0.4% user 2.6% system 82.4% nice 0.0% iowait 14.4%idle
Mem: 254252k av, 247392k used, 6860k free, 0k shrd, 108348k

 

22控制进程
• kill

语法:kill [-signal] PID
向进程传送一个特定的讯号

默认为15(终结)
– kill -l
:列出所有可以由kill传递的讯号
• killall

进程控制
    当需要中断一个前台进程的时候,通常是使用Ctrl+c组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。
    kill
可以通过向一个进程发送一个讯号来控制进程。这个讯号既可以是数字,也可以是名称。默认情况下,kill向进程传送进程号15,即terminate以通知进程结束。我们可以使用kill –l列出所有可以由kill传递的讯号。
[root@stationxx root]# kill –l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
、、、、、、、、

 

23进程的优先级
进程的优先级,用nice值来表示
• nice
:以一个不同的nice值来运行指令
– nice -n num command
• renice
:改变一个运行进程的nice
– renice -n pid

进程的优先级
    Linux
系统用nice值来判断一个进程的优先级,修改进程运行的优先级,是通过增加或减少进程的nice值来实现。nicez值中负值( -n )表示高优先级,正值( n )表示低优先级。nice值的范围在-20~19之间,数值越大表示优先级越低。系统默认的进程nice值为0。当我们使用nice指令可设定以一定的nice值来执行一个命令时,默认情况下nice值为10。一般用户只能设定以一个正的nice值,即低优先级的方式来执行一个命令。只有root才可以指定以一个负的nice值,即高优先级的方式执行一个命令。我们通过renice可以更改一个运行进程的nice值,对于一般用户,只能提高nice值,降低优先级;只有root用户才能降低nice值,提升优先级。
nice
命令的语法结构:
nice [increment] [command] [arguments]
例如
:
[root @stationxx root] # vi abc
[root @stationxx root] # ps -l -p 1401( 1401
vi进程值
)
F S UID PPID C PRI NI ADDR SZ WCAN TTY TIME CMD
20 S 0 1401 0 75 20 fb117c18 400 f01af490 02 00:00:00 vi abc
可见,执行这个vinice值时20(默认值
).
[root @stationxx root] # nice -17 vi abc
[root @stationxx root] # ps -l -p 1404
F S UID PPID C PRI NI ADDR SZ WCAN TTY TIME CMD
20 S 0 1404 0 75 -17 fb118418 400 f01af4f4 02 00:00:00 vi abc
nice
值小的进程优先级高;nice值大的进程的优先级低

 

3、前台和后台
默认情况下,一个命令执行后,此指令将独占shell,并拒绝其他输入。我们称之为前台进程。反之,则称为后台进程。
对每一个控制台,都允许多个后台进程。
对前台/后台进程的控制与调度,被称为任务控制。

3.1将进程丢入后台
• command &
:将一个进程直接丢入后台运行
– nohup command &
:将一个进程直接丢入后台运行,而且在该控制台退出后,进程仍不挂断
• ctrl + Z
:将一个正在运行的前台进程暂停,并丢入后台

单独使用nohup没有任何意义,系统不会自动添加&将进程变为后台进程。
有些指令,如wget,本身有参数可代替nohup

 

4、工作
• jobs
:列出系统当前的后台进程
• fg
:将后台进程拉回前台
• bg
:激活后台暂停的进程

jobs
进程这一概念是对系统而言,对每一个控制台,我们则称为job。与进程有进程号一样,使用killrenice等指令操作进程使用进程号,使用fgbg指令操作job使用工作号。

bg使挂起的进程在后台运行。例如,当你已经在前台启动了一个命令时(没有在此命令后面使用&),意识到这一命令将运行叫长一端时间,但此时还须使用shell。在这种情况下,可通过在按下Ctrl键的同时按下Z键挂起当前运行的进程。此时你即可以使它长期挂起,也可以通过输入bg 把这一进程放到后台运行。这样便可以把shell解放出来。从而用于其他命令的执行。
fg
使被挂起的进程恢复到前台运行。

对于job,我们也可以通过kill [-signal] %jobID来控制。

 

5/proc目录
• /proc
目录是一个虚拟的文件系统,包含了来自正在运行着的核心的信息
用户可以通过cat /proc/下的文件,来获得系统的信息
这些信息包括系统硬件、网络设置、内存使用,及其他一些东西
• /proc/sys
目录下的文件,允许系统管理员更动,这些变动会直接影响当前核心

•/proc目录在每次系统开机时由核心根据/etc/fstab自动在内存中创建,并不基于硬盘。
•/proc
目录下的文件与目录都是虚拟产生,因此绝大多数的文件大小为零。
不可以cat /proc/kcore。这是当前运行内核的一个镜象,尝试cat会造成当前终端无法使用。
常用的/proc下的文件:
•/proc/interrupts
IRQ设置
•/proc/cpuinfo
CPU信息
•/proc/dma
DMA设置
•/proc/ioports
:输入输出设置
•/proc/meminfo
:系统内存使用状况
•/proc/loadavg
:系统负载平均值
•/proc/uptime
:系统运行时间与发呆时间
•/proc/version
Linux核心版本、创建主机、创建时间等
•/proc
目录下的常用目录
•/proc/scsi
scsi设备信息
•/proc/ide
ide设备信息
•/proc/net
:网络状态与配置信息
•/proc/sys
:核心配置参数
•/proc/<PID>
:进程的信息
改变/proc/sys目录下的文件,例如,我们可以用:
echo 1 > /proc/sys/net/ipv4/ip_forward
来打开IP转发功能

 

6、系统日志
系统日志记录着系统运行中的记录信息
在服务或系统发生故障的时候,通过查询系统日志,可以帮助我们诊断。
系统日志可以预警安全问题
系统日志一般都存放在/var/log目录下

6.1常用的系统日志
• /var/log/dmesg
核心启动日志
• /var/log/messages
系统报错日志
• /var/log/maillog
邮件系统日志

•/var/log/dmesg,此日志文件写在系统每次启动时,包含了核心装入时系统的所有输出数据。我们可以使用dmesg命令直接查看!
•/var/log/messages
,这是一份标准系统日志,记录着大部分系统服务的输出,包括启动时非关核心的一些输出。我们一般只关心最近发生的事件,所以一般使用tail命令查寻文件的结尾。
•/var/log/maillog
,此日志包含所有由sendmail送出的信息和报错。

6.2 常用的系统日志(二)
• /var/log/xferlog
– FTP
服务用日志
• /var/log/secure
安全信息
系统登录与网络连接的信息
• /var/log/wtmp
登录记录

•/var/log/xferlog,此日志用于记录所有由ftp服务汇报的讯息和报错。
•/var/log/secure
,此日志包含了所有与系统相关的讯息,诸如登录,tcp_wrapperxinetd服务。
•/var/log/wtmp
,系统的每一次登录,都会在此日志中添加记录。为了防止有人篡改,该文件为二进制文件。只能用last这一类的指令来读取。

posted on 2011-01-21 19:18  dfine.sqa  阅读(555)  评论(0编辑  收藏  举报

导航