linux系统整体监控脚本 (2012-01-09 11:28:19)
从网上搜了一个监控系统资源的脚本,有问题 在他基础上改一改试试 问题
1、io结果不准确
2、数据各自为战,不方便合并统计出报表 修改思路 1、沿用脚本框架
2、使用持续运行脚本获取系统资源
3、假定cpu使用vmstat 30 21 ,首次运行获取时间,其他命令使用相同的周期和次数
乱糟糟的写了两天,分成2块把脚本写完了。
?
1、shell,作用:获取最原始的资源占用数据
#!/bin/bash
######################################################################## #This scripts is checking your host system: the cpu ,i/o,mem,network, #processes stat. # vision 1.1 Bate # Write by skate # Update by Poisson
#If you have some advise about it ,you can mail :gaosongbo@panguso.com
########################################################################
logdir=/data0/search/sysLoadLog cd $logdir
#make the local language is chinese #export LANG=zh_CN
removedate=`date +%d` curdate=`date +%H`
dateOFfile=`date +\
logcpuuse=$logdir/cpuuse\logcpuload=$logdir/cpuload\logioload=$logdir/ioload\
lognetworkload=$logdir/networkload\logsysprocess=$logdir/sysprocess\logmemuse=$logdir/memuse\lognetsession=$logdir/netsession\debuglog=$logdir/debuglog\
################################ #统计cpu的使用率信息 #持续1小时
################################ cpuuse() {
echo \
datenow=`date +\ if [ -f $logcpuuse ] then
echo $datenow,$logcpuuse >> $debuglog else
echo $datenow > $logcpuuse # echo $datenow >> $debuglog
vmstat 30 120 | grep -v \ fi }
############################### #统计cpu的负载信息
############################### cpuload() {
for((i=1;i<120;i++)); do
datenow=`date +\ if [ -f $logcpuload ] then
uptime >> $logcpuload else
#echo $datenow > $logcpuload uptime >> $logcpuload fi sleep 30 done }
################################ #统计io的使用率 #持续1小时
################################ io() {
datenow=`date +\ if [ -f $logioload ] then
echo $datenow,$logioload >> $debuglog else
echo $datenow > $logioload echo $datenow >> $debuglog iostat -x -k 30 120 >> $logioload fi }
################################ #统计Mem的使用率 #持续1小时
################################ mem() {
for((i=1;i<120;i++)); do
datenow=`date +\ if [ -f $logmemuse ] then
#echo $datenow >> $logmemuse free -m >> $logmemuse else
echo $datenow > $logmemuse free -m >> $logmemuse fi sleep 30 done } others(){
############################### #查看网络连接数,tcp协议 ############################### if [ -f $lognetsession ]
then
date +\
netstat -an | grep -E \ else
date +\
netstat -an | grep -E \ fi
################################### #统计系统进程总数信息
################################### if [ -f $logsysprocess ] then
date +\ eysnum=`ps aux | wc -l`
javanum=` ps -ef |grep java | grep -v grep |wc -l`
echo \ echo \ else
date +\ sysnum=`ps aux | wc -l`
javanum=` ps -ef |grep java | grep -v grep |wc -l`
echo \ echo \ fi
################################# #统计网络负载的信息
################################
if [ -f $lognetworkload ] then
date +\ sar -n DEV 1 3| grep eth0 >> $lognetworkload else
date +\
sar -n DEV 1 3|head -3 |tail -1 >> $lognetworkload sar -n DEV 1 3| grep eth0 >> $lognetworkload fi }
case \ cpuuse) cpuuse RETVAL=$? ;; cpuload) cpuload RETVAL=$? ;; io) io
RETVAL=$? ;; mem) mem RETVAL=$? ;; others) others RETVAL=$? ;; *)
echo $\ exit 1 ;; esac exit 0
?
2、python的,作用:根据输入的时间,查找并展现该时间段内资源占用的情况,其中还不能根据指定列展现,也没有单独拿出来做个函数
'''
Created on 2012-1-6 @author: poisson ''' import re import string import sys import os
linux系统整体监控脚本
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)