常用的主机监控Shell脚本

标签: 主机 监控 shell | 发表时间:2013-09-01 09:27 | 作者:
出处:http://www.iteye.com

最近时不时有朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢?根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性。

下面是我常用的几个主机监控的脚本,大家可以根据自己的情况在进行修改,希望能给大家一点帮助。

1、查看主机网卡流量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
#!/bin/bash
#network
#Mike.Xu
while : ; do
       time = 'date +%m"-"%d" "%k":"%M'
       day= 'date +%m"-"%d'
       rx_before= 'ifconfig eth0|sed -n "8"p|awk ' {print $2} '|cut -c7-'
       tx_before= 'ifconfig eth0|sed -n "8"p|awk ' {print $6} '|cut -c7-'
       sleep 2
       rx_after= 'ifconfig eth0|sed -n "8"p|awk ' {print $2} '|cut -c7-'
       tx_after= 'ifconfig eth0|sed -n "8"p|awk ' {print $6} '|cut -c7-'
       rx_result=$[(rx_after-rx_before) /256 ]
       tx_result=$[(tx_after-tx_before) /256 ]
       echo "$time Now_In_Speed: " $rx_result "kbps Now_OUt_Speed: " $tx_result "kbps"
       sleep 2
done
done

 

2、系统状况监控

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/sh
#systemstat.sh
#Mike.Xu
IP=192.168.1.227
top -n 2| grep "Cpu" >>. /temp/cpu .txt
free -m | grep "Mem" >> . /temp/mem .txt
df -k | grep "sda1" >> . /temp/drive_sda1 .txt
#df -k | grep sda2 >> ./temp/drive_sda2.txt
df -k | grep "/mnt/storage_0" >> . /temp/mnt_storage_0 .txt
df -k | grep "/mnt/storage_pic" >> . /temp/mnt_storage_pic .txt
time =` date +%m "." %d " " %k ":" %M`
connect=` netstat -na | grep "219.238.148.30:80" | wc -l`
echo "$time  $connect" >> . /temp/connect_count .txt

 

3、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告

1
2
3
4
5
6
7
#!/bin/bash
#monitor available disk space
SPACE= 'df | sed -n ' / \ / $ / p ' | gawk ' {print $5} ' | sed  ' s/% // '
if [ $SPACE - ge 90 ]
then
fty89@163.com
fi

 

4、 监控CPU和内存的使用情况

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
#script  to capture system statistics
OUTFILE= /home/xu/capstats .csv
DATE= 'date +%m/%d/%Y'
TIME= 'date +%k:%m:%s'
TIMEOUT= 'uptime'
VMOUT= 'vmstat 1 2'
  USERS= 'echo $TIMEOUT | gawk ' {print $4} ' '
LOAD= 'echo $TIMEOUT | gawk ' {print $9} ' | sed "s/,//' '
FREE= 'echo $VMOUT | sed -n ' /[0-9] /p ' | sed -n ' 2p ' | gawk ' {print $4} ' '
IDLE= 'echo  $VMOUT | sed -n ' /[0-9] /p ' | sed -n ' 2p ' |gawk ' {print $15} ' '
echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" >> $OUTFILE

 

5、全方位监控主机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# check_xu.sh
# 0 * * * * /home/check_xu.sh
 
DAT= "`date +%Y%m%d`"
HOUR= "`date +%H`"
DIR= "/home/oslog/host_${DAT}/${HOUR}"
DELAY=60
COUNT=60
# whether the responsible directory exist
if ! test -d ${DIR}
then
         /bin/mkdir -p ${DIR}
fi
# general check
export TERM=linux
/usr/bin/top -b -d ${DELAY} -n ${COUNT} > ${DIR} /top_ ${DAT}.log 2>&1 &
# cpu check
/usr/bin/sar -u ${DELAY} ${COUNT} > ${DIR} /cpu_ ${DAT}.log 2>&1 &
#/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} > ${DIR}/cpu_0_${DAT}.log 2>&1 &
#/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} > ${DIR}/cpu_1_${DAT}.log 2>&1 &
# memory check
/usr/bin/vmstat ${DELAY} ${COUNT} > ${DIR} /vmstat_ ${DAT}.log 2>&1 &
# I/O check
/usr/bin/iostat ${DELAY} ${COUNT} > ${DIR} /iostat_ ${DAT}.log 2>&1 &
# network check
/usr/bin/sar -n DEV ${DELAY} ${COUNT} > ${DIR} /net_ ${DAT}.log 2>&1 &
#/usr/bin/sar -n EDEV ${DELAY} ${COUNT} > ${DIR}/net_edev_${DAT}.log 2>&1 &

放在crontab里每小时自动执行:

1
0 * * * * /home/check_xu .sh

这样会在/home/oslog/host_yyyymmdd/hh目录下生成各小时cpu、内存、网络,IO的统计数据。

 

如果某个时间段产生问题了,就可以去看对应的日志信息,看看当时的主机性能如何。

J4ML



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [主机 监控 shell] 推荐:

常用的主机监控Shell脚本

- - ITeye博客
最近时不时有朋友问我关于服务器监控方面的问题,问常用的服务器监控除了用开源软件,比如:cacti,nagios监控外是否可以自己写shell脚本呢. 根据自己的需求写出的shell脚本更能满足需求,更能细化主机监控的全面性. 下面是我常用的几个主机监控的脚本,大家可以根据自己的情况在进行修改,希望能给大家一点帮助.

(转)使用Shell脚本对Linux系统和进程资源进行监控

- - jackyrong
1)源程序(例如查找用户为 root,进程名为 CFTestApp 的进程 ID). 从上面的输出可见:11426 为 root 用户下的 CFTestApp 程序的进程 ID. ps: 查看系统中瞬间进程信息. 参数:-u< 用户识别码 > 列出属于该用户的程序的状况,也可使用用户名称来指定. -p< 进程识别码 > 指定进程识别码,并列出该进程的状况.

LINUX下使用Shell自动监控tomcat并且执行重启操作

- - 开源软件 - ITeye博客
转自http://my.oschina.net/chinaearl/blog/111830,如有侵权,请通知我,我及时删除. 下面的文件名称为monitor.sh,如果没有执行权限请使用chmod 777 monitor.sh. # func:自动监控tomcat脚本并且执行重启操作  . # 获取tomcat进程ID  .

使用shell脚本对Linux系统和进程资源进行监控

- - 快课网
在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员. 本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写. 1.Linux使用 Shell 检查进程是否存在. 2.Linux使用 Shell检测进程 CPU 利用率.

Shell编程

- - 博客园_首页
本来打算寒假回家好好学习Linux的,为以后学习嵌入式打好基础的. 回家之后的学习效率非常低,之前为了搭建Linux环境,折腾了很长时间,学到现在也就勉强才把Shell编程学完了. 今天就把自己学习的相关知识点总结整理一下. 个人感觉shell程序跟windows下的批处理文件有点像,就是将一些系统命令写进一个可执行文件中,然后执行.

shell 学习笔记

- tiger - 游戏人生
将脚本目录加到 PATH 中. 在 dash 中如何进行字符串替换. 将 rst 格式文档转换为 blog 可用的 html 代码. shell 脚本虽然不是非常复杂的程序, 但对于首次接触的我来讲, 多少还是有些忌惮. 不过, 接触任何新事物都需要勇敢面对, 逐步树立信心. 我是冲着把脚本写好去的, 所以, 我的目标是能够写出友好, 健壮, 优美的脚本..

GNOME Shell 3.2 预览

- timebug - LinuxTOY
近日 Allan 在他的博客上分享了最近在 GNOME Shell 3.2 上的开发进度. 整合聊天和消息程序(由 Guillaume Desmottes 开发). 登陆系统时自动登陆聊天服务,不再需要额外启动聊天程序. 直接在 Shell 即可语音通话,回复聊天邀请,文件传输. 通知计数器(由 Guillaume Desmottes 开发).

Ubuntu11.10 GNOME Shell指南

- 个人 - 译言-每日精品译文推荐
Ubuntu 11.10终于提供了一种安全方便的方式去安装和使用“GNOME Shell”——GNOME的新桌面交互接口. 这意味着不像之前的版本那样,现在它不需要任何额外的插件,或者执行任何可疑的脚本它可以从Ubuntu软件中心直接安装,只需一次简单的点击. 为了在ubuntu上获得更好的体验我们需要安装一些额外的插件.

nagios监控linux主机监控内存脚本 - jihite

- - 博客园_首页
工作包括两部分监控端(一二三)和被监控端(四). 一、nrpe.cfg中添加脚本. nrpe.cfg中添加命令索引. 说明:实际内存使用量超过80%警告;超过90%严重警告. 参考脚本check_used_mem.sh. $1、$2分别指输入的第一、二个参数,比如:. sh del.sh  a                        #第一个参数是a.

Shell 小技巧一则

- Hinc - LinuxTOY
经常与 Shell 为伍的你是不是也会经常碰到下面这些情境:. 要保存某些文件到特定目录,然后开始查看/编辑 1$ cp /somewhere/foo.c /somewhere/foo.c.orig 2$ vi /somewhere/foo.c. 或者先备份某个文件,然后开始捣鼓 1$ tar zcvf archives.tgz /somewhere/folder /and/somewhere/file1 /and/somewhere/file2 2$ scp archives.tgz someone@somewhere.org:~/blabla/.