【不积跬步,无以致千里】五个常用的Linux监控脚本代码
为大家提供五个常用Linux监控脚本(查看主机网卡流量、系统状况监控、监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告、监控CPU和内存的使用情况、全方位监控主机),有需要的朋友不妨看看哦!
1、查看主机网卡流量
- #!/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
2、系统状况监控
- #!/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来发警告
- #!/bin/bash
- #monitor available disk space
- SPACE='df | sed -n '/ \ / $ / p' | gawk '{print $5}' | sed 's/%//'
- if [ $SPACE -ge 90 ]
- then
- jbxue123@163.com
- fi
4、 监控CPU和内存的使用情况
- #!/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、全方位监控主机
- #!/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里每小时自动执行:
- 0 * * * * /home/check_xu.sh
这样便会在/home/oslog/host_yyyymmdd/hh目录下生成各小时cpu、内存、网络,IO的统计数据。
如果某个时间段产生问题了,就可以去看对应的日志信息,看看当时的主机性能如何。
【不积跬步,无以致千里】五个常用的Linux监控脚本代码的更多相关文章
- 不积跬步无以至千里(C语言笔记)
第一章 初始C程序 1.C程序结构 简单来说,一个C程序就是由头文件和函数组成 头文件 一条编译预处理命令:作用是在对C程序进行正式编译 ...
- qingshow “不积跬步无以至千里,不积小流无以成江海”。--荀子《劝学篇》 用tomcat+花生壳搭建自己的web服务器+域名(参考)
链接地址:http://www.blogjava.net/qingshow/archive/2010/01/17/309846.html 用tomcat搭建web服务器 目标:免费拥有自己的网站及域名 ...
- 神探Python程序员,带你千里捉小三!(附详情代码)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 王翔 清风Python PS:如有需要Python学习资料的小伙伴 ...
- 【不积跬步,无以致千里】vim复制
用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽:上次论坛上有人问到了怎么在vim中使 ...
- 【不积跬步,无以致千里】AMQP协议介绍
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 【不积跬步,无以致千里】关闭631端口cups打印服务和8009端口ajp
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 【不积跬步,无以致千里】安装roundcube 时出现 “DSN (write): NOT OK(SQLSTATE[HY000] [2002] No such file or directory)”
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 【不积跬步,无以致千里】VIM查找替换归纳总结zz
http://spaces.msn.com/dingy/blog/cns!2F24B9E66A542581!327.entry VIM中常用的替换模式总结. 1,简单替换表达式 替换命令可以在全文中用 ...
- 【不积跬步,无以致千里】linux下如何查看自己的外网IP
局域网的服务器是通过ADSL路由器连接外网的,但ADSL是从ISP运营商那儿通过动态获得IP的,那么我怎么知道自己的外网地址是多少呢?今天得到几个办法:curl -s http://whatismyi ...
随机推荐
- How to download apk for google play online?
http://apps.evozi.com/apk-downloader/ Online APK Downloader http://apkpure.com/ apkpure http://www.c ...
- 8款必备的免费移动Web开发框架(HTML5/JS)
标签:JavaScript HTML5 移动开发 Web开发 jQuery 应用程序框架 插件 概述:随着智能手机和平板电脑的普及,移动开发逐渐成为众多开发者追逐的潮流.拥有一款优秀的移动Web开发框 ...
- 谈数据库索引和Sqlite中索引的使用
要使用索引对数据库的数据操作进行优化,那必须明确几个问题:1.什么是索引2.索引的原理3.索引的优缺点4.什么时候需要使用索引,如何使用围绕这几个问题,来探究索引在数据库操作中所起到的作用. 1.数据 ...
- [POJ 3420] Quad Tiling
Quad Tiling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3495 Accepted: 1539 Des ...
- apache开源项目--lume
lume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务.
- Myeclipse最简单的svn插件安装方法
首先来这儿下载插件 http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 找个最新的下载 解压到对应的位置, ...
- Python中,如何初始化不同的变量类型为空值
参考文章 Python中,如何初始化不同的变量类型为空值 常见的数字,字符,很简单,不多解释. 列表List的其值是[x,y,z]的形式 字典Dictionary的值是{x:a, y:b, z:c} ...
- tap/click on search button on softkeyboard
driver.sendKeyEvent(84);Appium says it successfully sent in the command but 'search' does not get ta ...
- Linux shell 获取当前时间之前N天
date +%Y%m%d --date '2 days ago' 更多资料关注:www.kootest.com ;技术交流群:182526995
- MyEclipse10 Tomcat7 JDK1.7 配置
第一步.MyEclipse10 Tomcat7 JDK1.7下载 MyEclipse10http://downloads.myeclipseide.com/downloads/products/ewo ...