CentOS系统状态查看.doc
《CentOS系统状态查看.doc》由会员分享,可在线阅读,更多相关《CentOS系统状态查看.doc(7页珍藏版)》请在冰点文库上搜索。
CentOS系统状态查看
环境介绍
使用CentOS-6.4-x86_64-minimal.iso镜像文件安装操作系统,IP地址设置为192.168.0.2。
vi/etc/sysconfig/network-scripts/ifcfg-eth0
修改为以下字段:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.2
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=8.8.8.8
IPV6INIT=yes
IPV6ADDR=2001:
da8:
20d:
31:
:
2/64
IPV6_DEFAULTGW=2001:
da8:
20d:
31:
:
1
servicenetworkrestart
最好先使用date查看下当前时间,如果不准确的话,可以与国际时间做个同步
yum-yinstallntpdate
ntpdatetime.nist.gov
查看Cpu
1)top命令是最流行Unix/Linux的性能工具之一。
系统管理员可用运行top命令监视进程和Linux整体性能。
-n:
更新的次数,完成后将会退出top
top-n1
top-09:
53:
43up26min,1user,loadaverage:
0.02,0.01,0.00
Tasks:
68total,1running,67sleeping,0stopped,0zombie
Cpu(s):
0.6%us,0.5%sy,0.0%ni,98.3%id,0.6%wa,0.0%hi,0.0%si,0.0%st
Mem:
1922616ktotal,222816kused,1699800kfree,8088kbuffers
Swap:
2047992ktotal,0kused,2047992kfree,116692kcached
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
1391root200150281160900R1.90.10:
00.02top
1root2001922814921216S0.00.10:
00.79init
2root200000S0.00.00:
00.00kthreadd
2)可以看到第三行显示的是当前CPU状态信息
top-n1|sed-n3p
Cpu(s):
0.6%us,0.5%sy,0.0%ni,98.4%id,0.6%wa,0.0%hi,0.0%si,0.0%st
或者
top-n1|grepCpu
Cpu(s):
0.6%us,0.5%sy,0.0%ni,98.4%id,0.5%wa,0.0%hi,0.0%si,0.0%st
3)每列显示的意思如下:
如果需要查看用户空间占用CPU的百分比,使用以下命令
0.6%us—用户空间占用CPU的百分比。
0.5%sy—内核空间占用CPU的百分比。
0.0%ni—改变过优先级的进程占用CPU的百分比
98.4%id—空闲CPU百分比
0.5%wa—IO等待占用CPU的百分比
0.0%hi—硬中断(HardwareIRQ)占用CPU的百分比
0.0%si—软中断(SoftwareInterrupts)占用CPU的百分比
top-n1|grepCpu|awk'{print$2}'
0.6%us,
4)如果需要只显示百分比,使用以下命令
top-n1|grepCpu|awk'{print$2}'|cut-c1-4
0.6%
5)但是如果将这个数字作为系统CPU利用率不是很准,最好是使用100%减去空闲CPU百分比,使用以下命令
top-n1|grepCpu|awk'{print$5}'|awk-F"%"'{print(100-$1)"%"}'
1.3%
查看内存
6)可以看到第四行显示的是当前Mem状态信息
top-n1|sed-n4p
Mem:
1922616ktotal,223576kused,1699040kfree,8216kbuffers
或者
top-n1|grepMem
Mem:
1922616ktotal,223452kused,1699164kfree,8208kbuffers
7)每列显示的意思如下:
如果需要查看用物理内存总量,使用以下命令
1922616ktotal—物理内存总量
223576kused—使用中的内存总量
1699040kfree—空闲内存总量
8216kbuffers—缓存的内存量
top-n1|grepMem|awk'{print$3}'
1922616k
8)如果需要显示内存使用百分比,使用以下命令
top-n1|grepMem|awk'{print$5/$3*100"%"}'
11.6421%
9)也可以通过free命令查看内存使用情况(单位k,如果需要单位为m,使用free-m)
注:
free命令比top命令更快
total:
总计物理内存的大小。
used:
已使用多大。
free:
可用有多少。
Shared:
多个进程共享的内存总额。
Buffers/cached:
磁盘缓存的大小。
free
totalusedfreesharedbufferscached
Mem:
1922616223436169918008328116796
-/+buffers/cache:
983121824304
Swap:
204799202047992
10)第二行为内存使用情况
free|sed-n2p
Mem:
1922616223436169918008344116796
或者
free|grepMem
Mem:
1922616223436169918008344116796
11)如果需要查看总计物理内存的大小,可以使用以下命令
free-m|sed-n2p|awk'{print$2}'
1877
12)如果需要显示内存使用百分比,使用以下命令
free|sed-n2p|awk'{print$3/$2*100"%"}'
11.6344%
查看磁盘
13)可以使用df命令查看磁盘情况(默认单位为k,如果需要单位为m,使用df–m或者单位自动df-h)
df
文件系统1K-块已用可用已用%挂载点
/dev/mapper/VolGroup-lv_root
284559441407236256032326%/
tmpfs96130809613080%/dev/shm
/dev/sda14958445289441735012%/boot
14)因为显示的不对齐,需要-P参数对齐
df-P
文件系统1024-块已用可用配额挂载点
/dev/mapper/VolGroup-lv_root284559441407276256031926%/
tmpfs96130809613080%/dev/shm
/dev/sda14958445289441735012%/boot
15)因为第一行不是需要的内容,需要去除第一行
df-P|sed-n'1!
'p
/dev/mapper/VolGroup-lv_root284559441407268256032006%/
tmpfs96130809613080%/dev/shm
/dev/sda14958445289441735012%/boot
16)如果只需要查看总磁盘大小一行,使用命令
df-P|sed-n'1!
'p|awk'{print$2}'
28455944
961308
495844
17)如果需要计算总磁盘大小一行,使用命令
df-P|sed-n'1!
'p|awk'{a+=$2}END{printa}'
29913096
18)如果需要计算总的使用磁盘大小一行,使用命令
df-P|sed-n'1!
'p|awk'{b+=$3}END{printb}'
1460166
19)如果需要计算总的磁盘使用率,使用命令
df-P|sed-n'1!
'p|awk'{a+=$2}{b+=$3}END{printb/a*100"%"}'
4.88139%
查看网速
20)可以使用ifconfig命令查看网卡eth0的使用情况
ifconfigeth0
eth0Linkencap:
EthernetHWaddr00:
50:
56:
B2:
1D:
65
inetaddr:
192.168.0.2Bcast:
192.168.0.255Mask:
255.255.255.0
inet6addr:
2001:
da8:
20d:
31:
2:
:
/64Scope:
Global
inet6addr:
2001:
da8:
20d:
31:
250:
56ff:
feb2:
1d65/64Scope:
Global
inet6addr:
fe80:
:
250:
56ff:
feb2:
1d65/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
949925errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
476662errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
1350085212(1.2GiB)TXbytes:
33019912(31.4MiB)
21)最后一行可以查看网卡接收和发送字节
ifconfigeth0|grepbytes
RXbytes:
1350100537(1.2GiB)TXbytes:
33023756(31.4MiB)
22)字节数是随着时间的增长不停的增加的,查看当前接收字节数,可使用如下命令
ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}'
1350116823
ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}'
1350120591
23)由于字节数的不断增长,所以每间隔1秒取得值相减即为该秒的网速值
ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}';sleep1s;ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}'
1350168724
1350168876
24)两个命令返回值相减,需要使用脚本来做操作
viRX.sh
输入以下内容
RX0=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
sleep1s
RX1=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
echo$((RX1-RX0))
shRX.sh
240
得出的240,即为当前网卡的实时接收网速为240B/s
25)如果需要显示单位为KB/s或者MB/s,需要在原来的值后面除以1024,但是默认使用echo除法只能显示整数,不能显示小数,这里需要使用awk命令
viRX.sh
修改为以下内容
RX0=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
sleep1s
RX1=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
awk"BEGIN{print($RX1-$RX0)/1024}"
shRX.sh
0.117188
26)同理,可以使用脚本取到实时接收和实时发送的网速
viRb.sh
输入以下内容
RX0=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX0=$(ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
sleep1s
RX1=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX1=$(ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
awk"BEGIN{print($RX1-$RX0)/1024}";awk"BEGIN{print($TX1-$TX0)/1024}"
shRb.sh
97.0039
11547.2
这是我从客户端下载该设备上文件时,得出的网速,接收97.0039KB/s,发送11547.2KB/s
记录参数
27)如果只需要将时间,CPU利用率,内存利用率,磁盘利用率记录在文件,使用命令
echo$(date+%F-%T;top-n1|grepCpu|awk'{print$5}'|awk-F"%"'{print(100-$1)"%"}';free|sed-n2p|awk'{print$3/$2*100"%"}';df-P|sed-n'1!
'p|awk'{a+=$2}{b+=$3}END{printb/a*100"%"}')>>/root/status.txt
执行三次,再查看
cat/root/status.txt
2013-10-09-12:
15:
290.6%12.2874%6.01956%
2013-10-09-12:
15:
320.6%12.2883%6.01961%
2013-10-09-12:
15:
340.6%12.2883%6.01961%
28)如果需要每隔5分钟就执行一次,需要使用crontab,命令为
crontab-e
输入以下内容:
注:
在定时器crontab启动的脚本中使用top命令,默认不能正常执行,需要给top命令加上-b参数(以非交互和非全屏模式运行)即可
同时,所有的%前需要使用\符号来转义,不然也会出错
*/5****echo$(date+\%F-\%T;top-bn1|grepCpu|awk'{print$5}'|awk-F"\%"'{print(100-$1)"\%"}';free|sed-n2p|awk'{print$3/$2*100"\%"}';df-P|sed-n'1!
'p|awk'{a+=$2}{b+=$3}END{printb/a*100"\%"}')>>/root/status.txt
稍等20分钟,可查看
cat/root/status.txt
2013-10-09-12:
45:
010.6%12.6253%6.01995%
2013-10-09-12:
50:
010.6%12.6253%6.01995%
2013-10-09-12:
55:
050.6%12.5587%6.01995%
29)如果还需要将网卡使用情况记录在文件,使用脚本
vistatus.sh
输入以下内容:
Time=$(date+%F-%T)
Cpu=$(top-bn1|grepCpu|awk'{print$5}'|awk-F"%"'{print(100-$1)"%"}')
Mem=$(free|sed-n2p|awk'{print$3/$2*100"%"}')
Disck=$(df-P|sed-n'1!
'p|awk'{a+=$2}{b+=$3}END{printb/a*100"%"}')
RX0=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX0=$(ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
sleep1s
RX1=$(ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX1=$(ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
echo$(echo$Time$Cpu$Mem$Disck;awk"BEGIN{print($RX1-$RX0)/1024}";awk"BEGIN{print($TX1-$TX0)/1024}")>>/root/status.txt
shstatus.sh
cat/root/status.txt
2013-10-09-16:
05:
160.7%27.076%7.62876%0.05859380.0410156
2013-10-09-16:
10:
060.7%27.0958%7.62887%114.78511222
2013-10-09-16:
10:
080.7%27.1022%7.62887%96.386711525
2013-10-09-16:
10:
110.7%27.097%7.62887%92.226611014.9
可以看出,从客户端下载该设备上文件时,发送网速急速上升
30)如果需要每隔5分钟就执行一次,需要使用crontab,
注:
在定时器crontab启动的脚本中直接使用ifconfig命令,默认不能正常执行,需要给出全路径
vistatus.sh
修改为
Time=$(date+%F-%T)
Cpu=$(top-bn1|grepCpu|awk'{print$5}'|awk-F"%"'{print(100-$1)"%"}')
Mem=$(free|sed-n2p|awk'{print$3/$2*100"%"}')
Disck=$(df-P|sed-n'1!
'p|awk'{a+=$2}{b+=$3}END{printb/a*100"%"}')
RX0=$(/sbin/ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX0=$(/sbin/ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
sleep1s
RX1=$(/sbin/ifconfigeth0|grepbytes|awk'{print$2}'|awk-F":
"'{print$2}')
TX1=$(/sbin/ifconfigeth0|grepbytes|awk'{print$6}'|awk-F":
"'{print$2}')
echo$(echo$Time$Cpu$Mem$Disck;awk"BEGIN{print($RX1-$RX0)/10