一个监控系统性能的脚本

[[email protected] ~]# cat monitor.sh
#!/bin/bash

# chkconfig: 2345 08 92
# description:  The scripts is to monitor system health !

Today=`date +%Y%m%d`

function disk {

clear

df -h

}

function memory {

clear

free -m
}

function cpu {

clear

top

}

function process {

clear

process_nu=`lsof|wc -l`

echo "The current process numbers is $process_nu" !

}

function ipaddress {

clear

ipaddr=`ifconfig eth0|awk ‘/inet addr/ {print $2}‘|awk -F‘:‘ ‘{print $2}‘`

echo "This server ip address is $ipaddr" !

}

function disk_io {

clear
   
         diskblockin=`vmstat |sed 1d|sed 1d|awk ‘{print $9}‘`

diskblockout=`vmstat |sed 1d|sed 1d|awk ‘{print $10}‘`
   
         echo "The block equipment received $diskblockin blocks  one second !"
 
         echo "The block equipment send $diskblockout blocks one second !"

}

function current_time {

clear

current_time=`date|awk ‘{print $5}‘`

echo "The current time is $current_time o clock !"

}

function users {

clear

current_user=`who|wc -l`

echo "There are $current_user users login in the system !"

}

function networkcardflow  {

clear
           
receive1=`cat /proc/net/dev|grep eth0|awk ‘{print $2}‘`

send1=`cat /proc/net/dev|grep eth0|awk   ‘{print $10}‘`

sleep 5

receive2=`cat /proc/net/dev|grep eth0|awk ‘{print $2}‘`

send2=`cat /proc/net/dev|grep eth0|awk   ‘{print $10}‘`

receive_cnt=`expr $receive2 - $receive1`

receive_cnt=`expr $receive_cnt / 40`

send_cnt=`expr $send2 - $send1`

send_cnt=`expr $send_cnt / 40`

echo "The networkcard flow Input is $receive_cnt bps per second !"

echo "The networkcard flow Ouput is $send_cnt bps per second |"

}

function menu {

clear

echo

echo -e "\t\t\tSystem Admin Menu\n"

echo -e "\t1. Display disk space"

echo -e "\t2. Display memory usage"

echo -e "\t3. Display cpu usage"

echo -e "\t4. Display process statistics"

echo -e "\t5. Display ip address"

echo -e "\t6. Display disk io information"

echo -e "\t7. Display current time"

echo -e "\t8. Display current users"

echo -e "\t9. Display networkcard flow"

echo -e "\t0. Exit program\n\n"

echo -en "\t\tEnter option: "

read -n 1 option

}

while true

do

menu

case $option in

0)

break ;;

1)
          disk ;;

2)
         memory ;;

3)
            
         cpu ;;

4)

process ;;

5)
         ipaddress ;;

6)

disk_io ;;

7)
         current_time ;;

8)
         users ;;

9)
         networkcardflow ;;

*)

clear
        
         echo "Sorry , wrong selection !"

esac

echo -en "\n\n\t\t\tHit any key to continue"

read -n 1 line

done

clear

chmod +x  monitor.sh

执行显示效果如下:

可以输入自己的选项,显示相应的结果:

比如输入 1

显示如下:

时间: 2024-12-13 23:33:49

一个监控系统性能的脚本的相关文章

使用python写一个监控mysql的脚本,在zabbix web上自定义模板

##先使用MySQLdb的接口关联数据库. [[email protected] python]# cat check_Mysql_custom.py #!/usr/local/bin/python '''author = chenmingle''' '''Description:get mysql status''' import os import sys try:     import MySQLdb as mysql except Exception, e:     print e   

一个监控进程的脚本,若进程异常重启进程

#!/bin/shecho "Current DIR is " $PWDwhile [ 1 ]do serverpid=`ps -ef|grep 进程名|grep -v grep|awk '{print $2}'` if [ "$serverpid" ] then echo "进程名 is running,pid is " $serverpid #kill -9 $serverpid else echo "进程名 is down ,no

监控系统性能的脚本(cpu,disk,memory,network)

#!/usr/bin/pythonimport psutilimport jsonimport time def item_disk():    return dict(zip(           ['total','used','free','percent'],psutil.disk_usage('/')))def item_cpu():    return dict(zip(           ['user','system','nice','idle'],psutil.cpu_tim

使用monit搭建一个监控系统

上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情.当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行.我们搭建监控目的不过是出现问题能够及时的知道,平时可从web UI上看到整个系统的状况,同时它本身要轻量级,不要影响性能.当然了类似的产品很多了,比如Ganglia,我在老科长波哥曾经搭建过一个Ganglia系统监控科室十几台服务器,让我很是崇拜.本文重点介绍monit.                      monit是一个可以监控系

SQL Server 监控统计阻塞脚本信息

原文:SQL Server 监控统计阻塞脚本信息 数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的影响. 很多时候,DBA需要知道数据库在出现性能问题时,有没有发生阻塞? 什么时候开始的?发生在那个数据库上? 阻塞发生在那些SQL语句之间? 阻塞的

一个简单的shell脚本

一个简单的shell脚本 编写 假设我想知道目前系统上有多少人登录,使用who命令可以告诉你现在系统有谁登录: 1.[[email protected] ~]$ who2.KANO tty1 2016-02-15 01:47 (:0)3.KANO pts/0 2016-02-15 01:48 (kelvin) 当然在个人电脑上,所列出来的列表可能只有上面这么短.但是在一些大型.多用户的系统上,所列出的列表就可能很长.这个时候我们可以使用自动计算用户总数.wc是一个字数计算程序,它可以计算出行数(

一个计算的小脚本

[[email protected] cailu]# cat urfile 1 a2 b3 a1 d[[email protected] cailu]# awk '{a[$1]=a[$1]?a[$1]OFS$2:$2}END{for(i in a)print i,a[i]}' urfile 1 a d2 b3 a 一个计算的小脚本,布布扣,bubuko.com

nagios 监控 网卡流量 脚本

#!/bin/bash # #Time     : 2014-06-23 #Author   : ftlynx #Function : use NET-SNMP get NIC traffic on nagios. Usage(){ echo "Usage: check_traffic.sh [options]" echo "     -H     Host IP." echo "     -P     net-snmp community string.

13 一个Mysql自动备份脚本

写了一个Mysql备份的脚本,大家看看,有什么不妥地方. 这是我写的第一个Shell脚本,大家帮忙看看, 有谁需要的,我可以发给他. 可以将这个脚本放进crontab,每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上. 代码: #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting #设置数据库名,数据库登录名,密码,备份路径,日