linux系统监控命令.docx
《linux系统监控命令.docx》由会员分享,可在线阅读,更多相关《linux系统监控命令.docx(17页珍藏版)》请在冰豆网上搜索。
linux系统监控命令
目录
1.watch1
2.uname4
3.yumlistsysstat5
4.uptime6
5.ps6
6.内存监控free7
7.vmstat7
8.CPU监控 - mpstat8
9.磁盘监控 -iostat8
五.网络监控9
1.sar9
stat11
3.ip11
1.watch
watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。
举例来说,Linux系统有一个基础命令w,可以显示当前的uptime、负载还有登录的用户,非常方便,但是如果我想监测这些数据,看看有没有新用户登入,看看某段的时间的负载是不是太大之类的,就得手动一遍遍的运行这个命令,然后查看结果,虽然命令只有一个字母,但是还是很郁闷……
watch就是干这个用的,直接在watch后面接你想运行的命令,watch就会帮你重复运行,并把每次的结果都更新在屏幕上~
要想监测w命令的运行结果,只要watchw就可以了:
默认watch会以2s的间隔重复运行命令,你也可以用-n参数指定时间间隔~
还有一个实用的参数是-d,这样watch会帮你高亮显示变化的区域,这样更加一目了然了~
Ctrl+c就可以退出~
你可以拿他来监测你想要的一切命令的结果变化,比如tail一个log文件,ls监测某个文件的大小变化,看你的想象力了~
如果你的发行版中不幸没有这个命令,可以到这里下载安装,watch属于procps这个软件包。
FreeBSD的watch命令与Linux下的watch命令完全不一样。
FreeBSD下的watch命令是查看其它用户的正在运行的操作,而linux下的watch是自动定时运行一个(一行)命令。
下面是FreeBSD下的watch命令的介绍:
CODE:
watch—snooponanotherttyline
watch允许你偷看其它terminal正在做什么,该命令只能让超级用户使用。
为什么要用watch?
有时候,基于安全的目的,你可以用watch看某个用户在干什么。
也许你发现你的机器被某人黑了,你想看看他正在你的机器干什么。
我不清楚,或者你只是好管闲事。
运行watch需要什么?
watch需要打开下面的kerneloptions:
CODE:
pseudo-devicesnp3
这会允许你拥有4个snoopdevices。
建立4个devices:
————————————————————————-
CODE:
cd/dev
./MAKEDEVsnp0
./MAKEDEVsnp1
./MAKEDEVsnp2
./MAKEDEVsnp3
————————————————————————-
错误:
如果看到下面这个错误,那你必须按照上面所说的方法去做:
————————————————————————-
CODE:
watch:
fatal:
cannotopensnoopdevice
————————————————————————-
运行watch:
————————————————————————-
CODE:
#who
danttyp0Nov2717:
35(wocker.int)
danttyp1Nov2812:
36(wocker.int)
#watchttyp1
————————————————————————-
或者,如果你想要能写入其它的terminal,可以尝试-W参数:
————————————————————————-
#watch-Wttyp1
————————————————————————-
其它操作:
切换终端:
Ctrl+x
退出watch:
Ctrl+g
资料来源:
http:
//www.freebsddiary.org/watch.php
ttysnoop(s)
ttysnoop是一个重定向对一个终端号的所有输入/输出到另一个终端的程序。
目前我所知道的它的
所在网站为,但是始终连不上去,从其它途径我得到了ttysnoop-0.12c-5,
地址是
版本好象还不能支持shadowpassword,安装后你需要手动创建目录/var/spool/ttysnoop测试这个
程序是有趣的,下面是相关指令:
首先改/etc/inetd.conf中的in.telnetd默认调用login登录程
序为/sbin/ttysnoops,象下面这样:
CODE:
[root@jephe/etc]#moreinetd.conf│grepin.telnetd
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-L/sbin/ttysnoops
更改后一定要运行killall-HUPinetd使之生效
确保不要使用阴影口令,用#pwunconv禁止阴影口令。
再编辑文件/etc/snooptab
默认配置就可以了。
CODE:
[root@jephe/etc]#moresnooptab
ttyS1/dev/tty7login/bin/login
ttyS2/dev/tty8login/bin/login
*socketlogin/bin/login
------
最后,如果在某个终端上有人登录进来(你可以用w命令查看它在哪个终端),如登录终端设备为
ttyp0,则你可以登录进服务器打入#/bin/ttysnoopttyp0(提示输入root口令,再次,上面提到的
这个版本不支持阴影口令)以监视用户的登录窗口。
没有用过,我想写还是有一定管理作用的
2.uname
[gjx@multiplelinux~]$uname-r
2.6.33.3-85.fc13.i686.PAE
显示linux系统内核
还有sar、mpstat、iostat默认未安装,需要安装sysstat软件包
3.yumlistsysstat
已加载插件:
presto,refresh-packagekit
可安装的软件包
sysstat.i686 9.0.6-3.fc13 fedora
[root@multiplelinux~]#yuminstallsysstat
已加载插件:
presto,refresh-packagekit
设置安装进程
解决依赖关系
-->执行事务检查
--->软件包sysstat.i6860:
9.0.6-3.fc13将被升级
-->完成依赖关系计算
依赖关系解决
========================================================================================
软件包 架构 版本 仓库 大小
========================================================================================
正在安装:
sysstat i686 9.0.6-3.fc13 fedora 207k
事务概要
========================================================================================
安装 1软件包
更新 0软件包
总下载量:
207k
Installedsize:
735k
确定吗?
[y/N]:
y
下载软件包:
SettingupandreadingPrestodeltametadata
Processingdeltametadata
Package(s)datastilltodownload:
207k
sysstat-9.0.6-3.fc13.i686.rpm |207kB 00:
00
运行rpm_check_debug
执行事务测试
事务测试成功
执行事务
正在安装 :
sysstat-9.0.6-3.fc13.i686 1/1
已安装:
sysstat.i6860:
9.0.6-3.fc13
完毕!
一.监测系统负载
4.uptime
uptime该项显示的是系统启动时间、已经运行的时间和三个平均负载值(最近1秒,5秒,15秒的负载值)。
可以查看系统负载,系统平均负载被定义为在特定时间间隔内运行队列中的平均进程数目,如果一个进程没有在等待I/O操作的结果并主动进入等待状态(即没有被调用或没有被停止),则其位于运行队列中。
[gjx@multiplelinux~]$uptime
15:
53:
04up20:
00, 1user, loadaverage:
0.03,0.01,0.00
以上显示最近1分钟内系统的平均负载是0.03,在最近5分钟内系统的平均负载是0.01,在最近15分钟内系统的平均负载是0.00,一共1个用户。
如果是多cpu,则每个cpu当前任务数为0.03/n
5.ps
ps其实经常用,但偶尔也会想很久想不起来而只记得top。
[root@multiplelinux~]#ps-el|more
FS UID PID PPID CPRI NIADDRSZWCHAN TTY TIMECMD
4S 0 1 0 0 80 0- 707poll_s?
00:
00:
04init
1S 0 2 0 0 80 0- 0kthrea?
00:
00:
00kthreadd
1S 0 3 2 0-40 -- 0migrat?
00:
00:
00migration/0
1S 0 4 2 0 80 0- 0run_ks?
00:
00:
00ksoftirqd/0
5S 0 5 2 0-40 -- 0watchd?
00:
00:
00watchdog/0
1S 0 6 2 0-40 -- 0migrat?
00:
00:
00migration/1
1S 0 7 2 0 80 0- 0run_ks?
00:
00:
00ksoftirqd/1
5S 0 8 2 0-40 -- 0watchd?
00:
00:
00watchdog/1
1S 0 9 2 0 80 0- 0worker?
00:
00:
01events/0
1S 0 10 2 0 80 0- 0worker?
00:
00:
01events/1
1S 0 11 2 0 80 0- 0worker?
00:
00:
00cpuset
1S 0 12 2 0 80 0- 0worker?
00:
00:
00khelper
1S 0 13 2 0 80 0- 0worker?
00:
00:
00netns
1S 0 14 2 0 80 0- 0async_?
00:
00:
00async/mgr
1S 0 15 2 0 80 0- 0worker?
00:
00:
00pm
1S 0 16 2 0 80 0- 0bdi_sy?
00:
00:
00sync_supers
F 用数值表示目前进程的状态
S 用字符表示目前进程的状态
UID 进程使用者的ID
PID 进程标识号
PPID 父进程标识号
C 进程使用CPU的估算
PRI 进程执行的优先权
NI Nice值,Nice可以降低进程执行的优先权
SZ VirtualSize,进程在虚拟内存中的大小
WCHAN 等待频道,为Null表示进程正在执行,就绪时为Waitingfor
TTY 该进程建立时所对应的终端,?
表示该进程不占用终端
TIME 进程已经执行的时间
CMD 执行进程的命令名称
6.内存监控free
[root@multiplelinux~]#free
total used free shared buffers cached
Mem:
2062128 1175040 887088 0 83228 663924
-/+buffers/cache:
427888 1634240
Swap:
4194296 0 4194296
表明物理内存2G,swap4G的内存情况,used为被使用的内存,不计缓冲,free为全部未使用的,shared为多个进程共享的内存总额,buffers为磁盘缓存的当前大小。
7.vmstat
[root@multiplelinux~]#vmstat35
procs-----------memory-------------swap-------io------system-------cpu-----
r b swpd free buff cache si so bi bo in csussyidwast
1 0 0903828 83352666140 0 0 4 1 26 48 0 099 0 0
0 0 0903820 83352666164 0 0 0 0 55 58 0 0100 0 0
0 0 0903820 83360666160 0 0 0 4 51 55 0 099 0 0
0 0 0903820 83360666164 0 0 0 0 46 55 0 0100 0 0
0 0 0903820 83360666164 0 0 0 9 52 49 0 0100 0 0
r 在运行队列中等待的进程数
b 在等待io的进程数
swpd 当前可用的交换内存,单位kb
free 空闲的内存,单位kb
buff 缓冲区中的内存数,单位kb
cache 被用来做高速缓存的内存数,单位kb
si 从磁盘交换到内存的交换页数量,单位kb/s
so 从内存交换到磁盘的交换页数量,单位kb/s
bi 发送到块设备的块数,单位块/s
bo 从块设备接收到的块数,单位块/s
in 每秒的中断数,包括时钟中断
cs 每秒的环境(上下文)切换次数
us 用户进程使用的时间,百分比表示
sy 系统进程使用的时间,百分比表示
id cpu空闲时间,百分比表示
wa 等待io所消耗的cpu时间,百分比表示
有几本书上说,如果r经常大于4,且id经常小于40,表示cpu负荷很重;如果bi及bo长期不等于0,表示物理内存容量太小;结合si和so两个分析,频繁大量的页面交换,性能会受很大影响,物理内存不能满足系统需求,但存free少不代表性能有问题。
8.CPU监控 - mpstat
以上vmstat显示cpu总体性能,mostat可显示每个cpu性能。
其实对于多线程cpu,也会被认为多个。
[root@multiplelinux~]#mpstat
Linux2.6.33.3-85.fc13.i686.PAE(multiplelinux) 2010年09月27日 _i686_ (2CPU)
20时41分06秒 CPU %usr %nice %sys%iowait %irq %soft %steal %guest %idle
20时41分06秒 all 0.37 0.01 0.37 0.02 0.02 0.00 0.00 0.00 99.20
%usr 用户应用程序占用cpu百分比
%nice 用户模式,使用nice命令改变既定优先权的应用程序占用cpu百分比
%sys 系统核心占用cpu时间百分比
%iowait 等待io所消耗cpu时间百分比
%irq 硬中断所占用cpu时间百分比
%soft 软中断所占用cpu时间百分比
%steal 虚拟设备所占用cpu时间百分比
%idle cpu空闲时间
9.磁盘监控 -iostat
[root@multiplelinux~]#iostat-t-d-k5
Linux2.6.33.3-85.fc13.i686.PAE(multiplelinux) 2010年09月27日 _i686_ (2CPU)
2010年09月27日20时59分07秒
Device:
tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.36 8.10 2.65 731862 239160
2010年09月27日20时59分12秒
Device:
tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
2010年09月27日20时59分17秒
Device:
tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.00 0.00 0.00 0 0
示例为以kb为单位,不显示cpu数据,每5秒刷新一次,如果要查看磁盘中每个分区的使用情况,则:
[root@multiplelinux~]#iostat-t-d-k-p
Linux2.6.33.3-85.fc13.i686.PAE(multiplelinux) 2010年09月27日 _i686_ (2CPU)
2010年09月27日21时01分11秒
Device:
tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.36 8.09 2.64 731862 239284
sda1 0.34 8.02 2.52 725905 228124
sda2 0.00 0.01 0.00 540 0
sda3 0.02 0.06 0.12 5281 11160
五.网络监控
1.sar
[root@multiplelinux~]#sar-nDEV53
Linux2.6.33.3-85.fc13.i686.PAE(multiplelinux) 2010年09月27日 _i686_ (2CPU)
21时04分09秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
21时04分14秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
21时04分14秒 eth0 1.00 0.00 0.06 0.00 0.00 0.00 0.00
21时04分14秒 IFACE