脚本监控当前服务器负载情况

#!/bin/bash

#触发阈值发邮件还没有写.

export PATH

export LANG=zh_CN.UTF-8

#先配置好mailx邮箱账号密码:

#cat>/etc/mail.rc<<"EOF"

#set sendcharsets=iso-8859-1,utf-8

#set [email protected]

#set smtp=smtp.163.com

#set [email protected]

#set smtp-auth-password=xxx

#set smtp-auth=login

#EOF

readonly times=$(date +%Y"/"%m"/"%d" "%k":"%M)

readonly machine="192.168.1.10"

function top_check(){

runup=$(top -n 1|grep user|awk -F ‘[, ]+‘ ‘{print $5}‘)

echo "$times   $machine   运行多久: $runup 分钟"

userd=$(top -n 1|grep user|awk -F ‘[, ]+‘ ‘{print $7}‘)

echo "$times   $machine   当前在线用户数: $userd"

load1=$(top -n 1|grep user|awk -F ‘[, ]+‘ ‘{print $11}‘)

echo "$times   $machine   1分钟CPU负载: $load1"

load5=$(top -n 1|grep user|awk -F ‘[, ]+‘ ‘{print $12}‘)

echo "$times   $machine   5分钟CPU负载: $load5"

load15=$(top -b -n 1|grep user|awk ‘{print $NF}‘)

echo "$times   $machine   15分钟CPU负载: $load15"

cpuus=$(top -n 1|grep Cpu|awk -F "," ‘{print $1}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine   用户空间占用CPU百分比: $cpuus"

cpusy=$(top -n 1|grep Cpu|awk -F "," ‘{print $2}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    内核空间占用CPU百分比: $cpusy"

cpuni=$(top -n 1|grep Cpu|awk -F "," ‘{print $3}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    改变过优先级的进程占用CPU的百分比: $cpuni"

cpuid=$(top -n 1|grep Cpu|awk -F "," ‘{print $4}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    空闲CPU百分比: $cpuid"

cpuwa=$(top -n 1|grep Cpu|awk -F "," ‘{print $5}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    I/O等待占用CPU的百分比: $cpuwa"

cpuhi=$(top -n 1|grep Cpu|awk -F "," ‘{print $6}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    硬中断占用CPU的百分比: $cpuhi"

cpusi=$(top -n 1|grep Cpu|awk -F "," ‘{print $7}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    软中断占用CPU的百分比: $cpusi"

cpust=$(top -n 1|grep Cpu|awk -F "," ‘{print $8}‘|awk -F " " ‘{print $2}‘)

echo "$times   $machine    虚拟 CPU 等待实际 CPU 的时间的百分比: $cpust"

#内存部分M为单位

memtotal=$(($(top -n 1|grep buff/cache|awk -F ‘[, ]+‘ ‘{print $4}‘) / 1024))

echo "$times   $machine   内存总共: $memtotal M"

memfree=$(($(top -n 1|grep buff/cache|awk -F ‘[, ]+‘ ‘{print $7}‘) / 1024))

echo "$times   $machine   空闲内存: $memfree M"

memused=$(($(top -n 1|grep buff/cache|awk -F ‘[, ]+‘ ‘{print $10}‘) / 1024))

echo "$times   $machine   已使用内存: $memused M"

membuff=$(($(top -n 1|grep buff/cache|awk -F ‘[, ]+‘ ‘{print $13}‘) / 1024))

echo "$times   $machine   内存buff/cache: $membuff M"

#swap部分M

swaptotal=$(($(top -n 1|grep avail|awk -F ‘[, ]+‘ ‘{print $3}‘) / 1024))

echo "$times   $machine   swap总共: $swaptotal M"

swapfree=$(($(top -n 1|grep avail|awk -F ‘[, ]+‘ ‘{print $6}‘) / 1024))

echo "$times   $machine   swap空闲: $swaptotal M"

swapused=$(($(top -n 1|grep avail|awk -F ‘[, ]+‘ ‘{print $9}‘) / 1024))

echo "$times   $machine   swap已使用: $swapused M"

swapavail=$(($(top -n 1|grep avail|awk -F ‘[, ]+‘ ‘{print $11}‘) / 1024))

echo "$times   $machine   swap内存avail Mem: $swapavail M"

}

files="/tmp/top.logs"

top_check >$files

dos2unix -k $files

mailx -s "$machine" [email protected] < $files

时间: 2024-10-15 17:09:58

脚本监控当前服务器负载情况的相关文章

使用shell脚本监控少量服务器并发送微信告警信息

01. 概括 1.0 脚本更新地址Git更新地址:shell_monitor_script.sh文章原文地址:使用shell脚本监控少量服务器并发送微信告警信息 1.1 前提:平台系统:linux系统下接收信息:微信企业号 1.2 脚本说明需要修改微信接口脚本对应参数的修改:包括IP,告警阈值等 1.3 脚本使用该脚本监控包括Disk.CPU.MEM.LOAD等主机资源,以及docker服务和docker容器.将该脚本附件假定放于:/home/mai/.check_host.sh.那么在定时任务

脚本监控web服务器,工作不正常发邮件提醒

背景介绍公司有多个web网站,没有配置监控服务,每天都需要定时检查服务器是否工作正常.低效耗时. 代码片段 #!/bin/bash # Author Jerry.huang (Email:[email protected]) # Check web Server if [[ -z `curl -I -s "http://www.baidu.com" | grep "200 OK"` ]]; then echo "www.baidu.com server s

Jmeter 监控tomcat 服务器资源情况

在  /home/star/apache-tomcat-7.0.62/conf/tomcat-users.xml 添加  角色    <role rolename="manager-gui"/>   设置 tomcat 为管理员   <user username="tomcat" password="tomcat" roles="manager-gui"/> 检验是否生效 成功进入 即生效 ,可以看到

shell脚本监控系统负载、CPU和内存使用情况

#一.编写系统负载监控的脚本文件#!/bin/bash #########################################################################This scripts is checking the system load,vision 0.1#Author:HeJunyi#E-mail:158****[email protected]###################################################

Linux crontab的使用方式,sh脚本的编写,sh脚本自动启动tomcat服务器,sh监控系统运行情况

1.如果想使用Linux crontab(类似java quartz),需要先启动crontab.关于crontab的启动.关闭.重启.重新载入配置的方式如下: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 2.crontab的命令介绍: A:添加crontab的命令是:c

Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本

网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf-8 -*- - import os, time last_worktime=0 last_idletime=0 def get_cpu(): global last_worktime, last_idletime f=open("/proc/stat","r") line=""

Linux下利用nc命令来监控检测服务器的端口使用情况(转载)

最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉需要能够立即告警处理.批量的系统监控比较好的是用nagios软件来实现,这样小项目专门装一个nagios软件,有点繁琐了.在网上查了一些资料,总结实验了一下,可以用简单的nc命令来实现. 一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程.

zabbix监控windows服务器上进程的内存使用情况

zabbix监控windows服务器上进程的内存使用情况 由于在windows服务器上不能像linux上一样使用top,或者类似于/pro目录下的数据信息,所以在在windows服务器上获得一个进程的内存或者CPU的使用情况不是很容易. 这里通过在windows服务器上使用python脚本获得进程的内存使用值,通过key传递给zabbix客户端,也就是本机上安装的zabbix客户端. windows上安装zabbix客户端网上的文章很多,这里不再记录. 1,首先安装python环境: 点击这里下

监控HP服务器CPU温度的脚本

监控HP服务器CPU温度的脚本: #!/bin/bash Name=`hostname` IP=`/sbin/ifconfig eth0 | grep "inet addr" | awk -F[:" "]+ '{print $4}'` Date=`date +%m%d%y` Date2=`date +%H:%M` Num=`/usr/sbin/dmidecode | grep -i 'serial number' | head -n 1` CPU1=`/sbin/h