[Linux] linux服务器主机性能、空间监控脚本
1、下载SendEmail;
2、建立监控脚本:
[oracle@db1 scripts]$ cat check_system_warning.sh #!/bin/sh #定义变量 v_datetime=`date +"%Y-%m-%d %H:%M:%S"` v_username='oracle' v_hostname=`hostname` #获取物理CPU数量 v_physicalcpu=`cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l` #获取逻辑CPU数量 v_logicalcpu=`cat /proc/cpuinfo | grep "processor" | wc -l` #获取IP地址 v_ip=`/sbin/ifconfig bond0|grep 'inet addr'|awk '{print $2}'|cut -d: -f2` #发送者邮箱 v_sendmail='' #发送者邮箱用户名 v_mailname='' #发送者邮箱密码 v_password='' #smtp服务器IP或域名:smtp.163.com v_smtpserver='113.108.212.80' #接收者邮件,如果是多个用空间分开 v_receivemail=' ' #路径 v_path="/home/${v_username}/scripts" #设置获取top进程的数量 v_process=15 #系统负载监控,最近5分钟负载及Cpu Idle报警阀值 v_loadvaluesfor5min_warning=20 v_cpuusage_warning=35 #剩余物理内存报警阀值,单位M v_freememory_warning=512 #free+buffers+cached报警阀值,单位M v_free_buffers_cached_warning=2000 #使用swap分区报警阀值,单位M v_useswap_warning=1000 #磁盘使用百分比报警阀值 v_diskusepercent_warning=90 #系统负载监控代码开始 #check sys load and cpuidle #v_release=`lsb_release -a|head -4|tail -1|awk '{print $2}'|awk -F '.' '{print $1}'` v_release=6 if [ ${v_release} = 4 ]; then #RHEL 4.x v_cpuusage=`mpstat 1 5 | grep Average | awk '{print $9}'|awk -F "." '{print $1}'` #RHEL 5.x elif [ ${v_release} = 5 ]; then v_cpuusage=`mpstat 1 5 | grep Average | awk '{print $10}'|awk -F "." '{print $1}'` #RHEL 6.x elif [ ${v_release} = 6 ]; then v_cpuusage=`mpstat 1 5 | grep Average | awk '{print $11}'|awk -F "." '{print $1}'` fi; v_loadvaluesfor5min=`cat /proc/loadavg |awk '{print $1}'|awk -F "." '{print $1}'` if [ ${v_loadvaluesfor5min} -ge ${v_loadvaluesfor5min_warning} ] || [ ${v_cpuusage} -le ${v_cpuusage_warning} ] ; then echo "############################" > ${v_path}/top${v_process}_text.log echo "USER: ${v_username}" >> ${v_path}/top${v_process}_text.log echo "HOSTNAME: ${v_hostname}" >> ${v_path}/top${v_process}_text.log echo "IP: ${v_ip}" >> ${v_path}/top${v_process}_text.log echo "Physical CPU: ${v_physicalcpu}" >> ${v_path}/top${v_process}_text.log echo "Logical CPU: ${v_logicalcpu}" >> ${v_path}/top${v_process}_text.log echo "Uptime: "`uptime` >> ${v_path}/top${v_process}_text.log echo "############################" >> ${v_path}/top${v_process}_text.log echo "########mpstat 1 5#########" >> ${v_path}/top${v_process}_text.log mpstat 1 5 >> ${v_path}/top${v_process}_text.log echo "######## ps -ef|grep "LOCAL=NO"|wc -l #########" >> ${v_path}/top${v_process}_text.log ps -ef|grep "LOCAL=NO"|wc -l >> ${v_path}/top${v_process}_text.log echo "######## ps aux | ??? #########" >> ${v_path}/top${v_process}_text.log ps aux|head -1 >> ${v_path}/top${v_process}_text.log ps aux|grep -v PID|sort -rn -k +3|head -${v_process} >> ${v_path}/top${v_process}_text.log #####echo " " | ${v_path}/bsmtp -f ${v_sendmail} -h smtp.api.localdomain -s "${v_hostname} Five Minutes Loadavg: ${v_loadvaluesfor5min} ; CPU idle: ${v_cpuusage} - ${v_datetime}" ${v_receivemail} < ${v_path}/top${v_process}_text.log ${v_path}/sendEmail -f ${v_sendmail} -t ${v_receivemail} -s ${v_smtpserver} -u "${v_hostname} Five Minutes Loadavg: ${v_loadvaluesfor5min} ; CPU idle: ${v_cpuusage} - ${v_datetime}" -xu ${v_mailname} -xp ${v_password} -o message-content-type=text -o message-charset=UTF-8 message-file=${v_path}/top${v_process}_text.log -l ${v_path}/system_warning_sendmail.log fi; #系统负载监控代码结束#系统内存监控代码开始 #check memory space v_freememory=`free -m|sed -n '\ : p'|gawk '{print $4}'|head -1` v_freebuffers=`free -m|sed -n '\ : p'|gawk '{print $6}'|head -1` v_freecached=`free -m|sed -n '\ : p'|gawk '{print $7}'|head -1` v_free_buffers_cached_total=`echo "($v_freememory+$v_freebuffers+$v_freecached)" |bc` v_useswap=`free -m|sed -n '\ : p'|tail -1|cut -d ":" -f 2|gawk '{print $2}'` if [ ${v_freememory} -le ${v_freememory_warning} ] || [ ${v_useswap} -ge ${v_useswap_warning} ] || [ ${v_free_buffers_cached_total} -le ${v_free_buffers_cached_warning} ] ; then echo "############################" > ${v_path}/memory_text.log echo "USER: ${v_username}" >> ${v_path}/memory_text.log echo "HOSTNAME: ${v_hostname}" >> ${v_path}/memory_text.log echo "IP: ${v_ip}" >> ${v_path}/memory_text.log echo "############################" >> ${v_path}/memory_text.log free -m >> ${v_path}/memory_text.log echo "########vmstat 1 10#########" >> ${v_path}/memory_text.log vmstat 1 10 >> ${v_path}/memory_text.log #####${v_path}/bsmtp -f ${v_sendmail} -h smtp.api.localdomain -s "${v_hostname} MEMORY SPACE WARNING! - ${v_datetime}" ${v_receivemail} < ${v_path}/memory_text.log ${v_path}/sendEmail -f ${v_sendmail} -t ${v_receivemail} -s ${v_smtpserver} -u "${v_hostname} MEMORY SPACE WARNING - ${v_datetime}" -xu ${v_mailname} -xp ${v_password} -o message-content-type=text -o message-charset=UTF-8 message-file=${v_path}/memory_text.log -l ${v_path}/system_warning_sendmail.log fi; #系统内存监控代码结束#系统磁盘监控代码开始 #check disk space v_diskusepercent=`df -P|column -t| sed -n '\ / p'|gawk '{print $5}'|sed s/%//|sort -nr|head -1` if [ ${v_diskusepercent} -ge ${v_diskusepercent_warning} ] ; then echo "############################" > ${v_path}/disk_text.log echo "USER: ${v_username}" >> ${v_path}/disk_text.log echo "HOSTNAME: ${v_hostname}" >> ${v_path}/disk_text.log echo "IP: ${v_ip}" >> ${v_path}/disk_text.log echo "############################" >> ${v_path}/disk_text.log df -h >> ${v_path}/disk_text.log #####${v_path}/bsmtp -f ${v_sendmail} -h smtp.api.localdomain -s "${v_hostname} DISK SPACE WARNING!!! - ${v_datetime}" ${v_receivemail} < ${v_path}/disk_text.log ${v_path}/sendEmail -f ${v_sendmail} -t ${v_receivemail} -s ${v_smtpserver} -u "${v_hostname} DISK SPACE WARNING - ${v_datetime}" -xu ${v_mailname} -xp ${v_password} -o message-content-type=text -o message-charset=UTF-8 message-file=${v_path}/disk_text.log -l ${v_path}/system_warning_sendmail.log fi; #系统磁盘监控代码结束
3、配置crontab,每两分钟运行一次
[oracle@db1 scripts]$ crontab -l #os check */2 * * * * /home/oracle/scripts/check_system_warning.sh >/dev/null 2>&1
转载于:https://blog.51cto.com/8858975/1401975
[Linux] linux服务器主机性能、空间监控脚本相关推荐
- 几个常用的Linux操作系统监控脚本
为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...
- Linux命令之系统五大负载(监控脚本及问题详解)
文章目录 一.I/O 1.监控脚本 2.I/O过高异常如何解决 二.网络流量 1.监控脚本 2.网络流量异常如何解决 三.硬盘 1.监控脚本 2.硬盘满了如何解决df -h 四.cpu 1.监控脚本 ...
- 【转载】Linux系统与性能监控
原文: Linux System and Performance Monitoring Darren Hoch 译:Roger 这是[叔度]给我的一篇非常不错的关于Linux性能监控的文档,可惜是英文 ...
- Linux系统与性能监控
原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1, #cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s 或者 #vmstat 虚拟内存统 ...
- ntop linux,Linux下开源监控软件Ntop的性能提升方案
摘要:Ntop是一款Linux下常见的开源监控软件,它可以监测的数据包括:网络流量.使用协议.系统负载.端口情况.数据包发送时间等.正常情况下它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信 ...
- 文件监控脚本 -- Linux bash
文件监控脚本 – Linux bash md5算法及生成方式 MD5值等同于文件的ID,它的值是唯一的. 如果文件已被修改(例如嵌入式病毒,特洛伊木马等),其MD5值将发生变化. 因此,一些常规下载U ...
- 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本
摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...
- 一款好用的Linux系统服务器性能监控分析工具介绍
软件性能测试过程中经常要对服务器性能指标(比如CPU.内存.磁盘IO及网络IO等等)进行监控以分析出软件在此服务器上的性能瓶颈以便进行后续的服务器调优及软件性能优化.下面为大家介绍一款小编认为比较好用 ...
最新文章
- Sparkamp;Spark性能调优实战
- python基础知识8——常见内置模块
- 单调递增最长子序列(南阳理工ACM)
- UVA11520填充正方形
- python arm64_PyTorch-aarch64
- window上安装mysql_在window上安装mysql - MySQL5.7.24 版本
- 2.1.1 进位计数制及其相互转换(二进制转八进制和十六进制、十进制小数转二进制数)
- 深入 Lucene 索引机制
- 够快云库, 加速企业信息化建设
- WebApi的调用-3.Basic验证
- Bootstrap静态cdn
- [Apple开发者帐户帮助]七、注册设备(3)禁用或启用设备
- (36)System Verilog类中方法示例
- OSG仿真案例(3)——cmake创建工程
- C语言和C++的区别是什么?到底学哪种好
- 我的2013——不平凡的第一次
- 尔雅网络选课 大学计算机知识,2017-2018学年第1学期超星尔雅网络课程选课指南.PDF...
- 【IoT】智能硬件 | 基于电力线的视频监控系统
- php验证码显示不了,PHP验证码无法显示的原因及解决办法
- 通过本地jedis连接远程服务器上的docker redis
热门文章
- ArrayList 实现原理及源码解析(jdk8 底层⽤的是数组)
- php高德地图计算距离接口,路径长度-距离/面积计算-示例中心-JS API 示例 | 高德地图API...
- linux SHELL之结构化命令
- 这道 Go 题目外网超过 80% 的人都答错了,你来试试...
- 金九银十专供 | 175 道 Go 工程师必考面试题 + 详细解答
- hello bash
- 一文说清ZooKeeper的实现原理
- pythoning——11、正则匹配
- android使用sharepreference保存用户操作数据
- ADN中国团队參加微软的Kinect全国大赛获得三等奖