Linux系统监控知识分享

系统 Linux
本人接触linux系统也有一点时间,在网上看看了,经过整理,将一些常用的系统监控的命令shell脚本拿出来晒晒,希望给新手提供学习的机会,同时也希望经验丰富者提够些技术知道,多多探讨交流!

作为系统运维人员,就要实时的监控系统的一些重要参数,不如僵尸进程,CPU的利用率,内存的使用情况,磁盘空间的使用情况,系统的均衡负载,根据得到的最新信息,我们就能判断系统运行的状态是否良好。本人接触Linux系统也有一点时间,在网上看看了,经过整理,将一些常用的系统监控的命令shell脚本拿出来晒晒,希望给新手提供学习的机会,同时也希望经验丰富者提够些技术知道,多多探讨交流!

获得某个用户的某个进行的信息:

  1. function GetPID #user #name 
  2. PsUser=$1 
  3. #echo $PsUser 
  4. PsName=$2 
  5. #echo $PsName 
  6. pid=`ps -u $PsUser | grep $PsName | grep -v grep | grep -v vi | grep -v dbx\n | grep -v tail | grep -v start | grep -v stop | sed -n 1p | awk '{print $1}'` 
  7. echo $pid 
  8. PID=`GetPID lgy cat` 
  9. echo $PID 
  10. #The process does not exist. 
  11. if [ "-$PID" == "-" ] 
  12. then 
  13. echo "The process does not exist." 
  14. fi 

这里面涉及一些最基本的进程监控命令,在linux中你只要man ps就会得到很多使用说明,grep按照一定的匹配规则进行字符串分割匹配,还有一些简单的控制语句,这些基本的shell语法应该是我们的基本技能,在晚上会有很多的学习资料。

获得CPU的使用率:

  1. function GetCPU 
  2. CPUValue=`ps -p $1 -o pcpu | grep -v CPU | awk '{print $1}' | awk -F. '{print $1}'` 
  3. echo $CPUValue 
  4. function CheckCPU 
  5. PID=$1 
  6. cpu=`GetCPU $PID` 
  7. if [ $cpu -gt 80 ] 
  8. then 
  9. echo "The usage of cpu is larger than 80%" 
  10. else 
  11. echo "The usage of cpu is normal" 
  12. fi 
  13. CheckCPU $PID 

这个程序和上一个代码片段是一脉相承,本段代码的运行结果一会会有相应的展示!

这段脚本的主要目的是用来进行对某个进程的内存使用情况的检测:

  1. function GetMem 
  2. MemUsage=`ps -o vsz -p $1 | grep -v VSZ` 
  3. ((MemUsage /= 1024)) 
  4. echo $MemUsage 
  5. mem=`GetMem $PID` 
  6. if [ $mem -gt 1600 ] 
  7. then 
  8. echo "The usage of memory is larger than 1.6G" 
  9. else 
  10. echo "The usage of memory is normal" 
  11. fi 

这是用来进行获得此进程的句柄使用量:

  1. function GetDes 
  2. DES=`ls /proc/$1/fd | wc -l` 
  3. echo $DES 
  4. des=`GetDes $PID` 
  5. if [ $des -gt 900 ] 
  6. then 
  7. echo "The number of des is larger than 900" 
  8. else 
  9. echo "The number of des is normal" 
  10. fi 

进行对某个端口的绑定的查询:

  1. function Listening 
  2. TCPListeningNum=`netstat -an | grep ":$1 " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l` 
  3. UDPListenNum=`netstat -an | grep ":$1 " | awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l` 
  4. ((ListeningNum = TCPListeningNum + UDPListenNum )) 
  5. if [ $ListeningNum == 0 ] 
  6. then 
  7. echo "0" 
  8. else 
  9. echo "1" 
  10. fi 
  11. isListen=`Listening 8080` 
  12. if [ $isListen -eq 1 ] 
  13. then 
  14. echo "The port is listening" 
  15. else 
  16. echo "The port is not listening" 
  17. fi 

系统CPU的使用情况:

  1. function GetSysCPU 
  2. CPUIdle=`vmstat 1 5 | sed -n '3,$p' | awk '{xx = x + $15} END {print x/5}' | awk -F. '{print $1}'` 
  3. CPUNum=`echo "100-$CPUIdle" | bc` 
  4. echo $CPUNum 
  5. cpu=`GetSysCPU` 
  6. echo "The System CPU is $cpu" 
  7. if [ $cpu -gt 90 ] 
  8. then 
  9. echo "The usage of system cpu is larger than 90%" 
  10. else 
  11. echo "The usage of system cpu is normal" 
  12. fi 

获得某制定的磁盘空间:

  1. function GetDiskSpc 
  2. if [ $# -ne 1 ] 
  3. then 
  4. return 1 
  5. fi 
  6. Folder="$1$" 
  7. DiskSpace=`df -k | grep $Folder | awk '{print $5}' | awk -F% '{print $1}'` 
  8. echo $DiskSpace 
  9. Folder="/dev" 
  10. DiskSpace=`GetDiskSpc $Folder` 
  11. echo "The system $Folder disk space is $DiskSpace%" 
  12. if [ $DiskSpace -gt 90 ] 
  13. then 
  14. echo "The usage of system disk($Folder) is larger than 90%" 
  15. else 
  16. echo "The usage of system disk($Folder) is normal" 
  17. fi 

在本机上代码检测的结果如下:

  1. lgy@lgy-HP:~$ ./monitorCPU.sh 
  2. 2388 
  3. The usage of cpu is normal 
  4. The usage of memory is normal 
  5. The number of des is normal 
  6. The port is not listening 
  7. The System CPU is 1 
  8. The usage of system cpu is normal 
  9. The system /dev disk space is 1% 
  10. The usage of system disk(/dev) is normal 
责任编辑:黄丹 来源: http://itindex.net
相关推荐

2010-05-26 12:57:59

linux 系统监控

2010-05-26 16:44:27

Linux流量监控

2014-04-11 11:13:15

CollectlLinux系统监控

2020-08-27 14:40:55

Linux内存内核

2011-01-06 13:45:51

linux流量监控iftop

2009-10-27 09:26:26

linux系统监控命令

2013-04-10 10:59:45

Linux系统监控collectl

2011-03-21 15:42:14

LinuxNagios

2011-03-29 11:28:03

Linux安装zabbix

2021-11-29 10:40:41

Linux运维命令

2013-01-09 10:14:34

2020-10-24 15:31:10

Linux服务器工具

2009-09-28 10:34:32

LR监控Linux系统资源Linux

2011-08-25 15:23:58

Linux系统监控命令

2011-03-31 11:14:30

MRTG监测

2010-05-19 10:14:41

vmstatLinux系统监控工具

2019-12-31 14:00:35

LinuxNginx脚本语言

2022-07-26 10:28:00

Linux监控命令

2009-09-21 09:51:19

LoadRunnerLinux系统监控Linux

2016-11-15 15:23:27

点赞
收藏

51CTO技术栈公众号