shell实现脚本监控服务器及web应用
实际工作中我们需要知道部署在服务器上的应用有没有问题,但是人为的操作太麻烦有咩有简单的方式呢shell来监控我们服务器运行状态以及服务器上部署的应用,如果出现异常就会自动发送一个邮件给我们,开始搞起。。。
老套路,先梳理思路
监控apache web服务 监控mysql数据库 监控服务器硬盘使用情况 监控服务器的内存使用
废话不多说,直接上代码
1.apache web 服务器
!/bin/bash
# 表示请求链接3秒钟,不要返回的测试数据
nc -w 3 localhost 80 &>/dev/null
if [ $? -eq 0 ];then
str="apache web status Running!"
else
str="apache web status Shuting!"
fi
# 发送的主题,邮件地址
echo str|mail -s 'apache web server' admin@lampym.com
2.监控mysql
!/bin/bash
# 表示请求链接3秒钟,不要返回的测试数据
nc -w 3 localhost 3306 &>/dev/null
if [ $? -eq 0 ];then
str="mysql server status Running!"
else
str="mysql server status Shuting!"
fi
# 发送的主题,邮件地址
echo str|mail -s 'mysql server status' admin@lampym.com
3.监控服务器disk
#!/bin/bash
:<<!
NR表示行数,$5表示第5列,具体的自己根据实际调整
!
ds=`df |awk '{if(NR==4){print int($5)}}'`
# 这里45根据实际需要更改
if [ $ds -lt 45 ];then
str="disk space is less then!!!"
else
str="disk space is greate than 45%!!!"
fi
echo $str|mailx -s 'linux server disk space' admin@lampym.com
4.监控服务器monery
#!/bin/bash
:<<!
具体的自己根据实际调整
!
mery=`df |awk '{if(NR==2){print int($3*100/$2)}}'`
if [ $mery -lt 50 ];then
str="mery space is less then 50%!!!"
else
str="mery space is greate than 50%!!!"
fi
echo $str|mailx -s 'linux server mery space' admin@lampym.com
整合一下
#!/bin/bash
# 功能:监控资源
# 名称:cont.sh
# 作者:枫客浪人
# 版本:0.1
# 联系方式:xxxx
# apache 应用服务
apache_web(){
nc -w 3 localhost 80 &>/dev/null
if [ $? -eq 0 ];then
str="apache web status Running!"
else
str="apache web status Shuting!"
fi
# 发送的主题,邮件地址
echo str|mail -s 'apache web server' admin@lampym.com
}
# mysql 服务
mysql_db(){
nc -w 3 localhost 3306 &>/dev/null
if [ $? -eq 0 ];then
str="mysql server status Running!"
else
str="mysql server status Shuting!"
fi
# 发送的主题,邮件地址
echo str|mail -s 'mysql server status' admin@lampym.com
}
# 磁盘使用情况
disk_mnt(){
ds=`df |awk '{if(NR==4){print int($5)}}'`
# 这里45根据实际需要更改
if [ $ds -lt 45 ];then
str="disk space is less then!!!"
else
str="disk space is greate than 45%!!!"
fi
echo $str|mailx -s 'linux server disk space' admin@lampym.com
}
# 内存使用情况
meny_mnt(){
mery=`df |awk '{if(NR==2){print int($3*100/$2)}}'`
if [ $mery -lt 50 ];then
str="mery space is less then 50%!!!"
else
str="mery space is greate than 50%!!!"
fi
echo $str|mailx -s 'linux server mery space' admin@lampym.com
}
min(){
apache_web()
mysql_db()
disk_mnt()
meny_mnt()
}
个人觉得还可将脚本更加复杂化,加入更多我们想要的信息,比如报错后具体的错误信息等等,当然这只是简单的例子,如果有需要,小伙伴们可以自己添加自己需要的内容。。。。。
关于自动监控策略,我这里采用的是Linux中的定时crontab,编写计划,自动监控,每天发送一份报告,这样每天我都会收到服务器的一个状态
crontab -e
每天13:10分执行代码发送一份邮件

shell实现脚本监控服务器及web应用的更多相关文章
- Linux记录-shell实现脚本监控服务器及web应用
1.apache web 服务器 1 2 3 4 5 6 7 8 9 10 !/bin/bash # 表示请求链接3秒钟,不要返回的测试数据 nc -w 3 localhost 80 &> ...
- shell监控脚本
序言: 前几天一好友问我服务器监控怎么做?你们公司的监控是怎么做的?有什么开源的监控软件推荐?常见的开源的监控软件当然首先推荐ZABBIX,分布式够强大,而且很多公司都在用,我问他具体什么需求,能监控 ...
- 4.Vim编辑器与Shell命令脚本
第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...
- shell及脚本4——shell script
一.格式 1.1 开头 必须以 "# !/bin/bash" 开头,告诉系统这是一个bash shell脚本.注意#与!中间有空格. 二.语法 2.1 数值运算 可以用decla ...
- 【Telnet】使用Telnet协议连接到远程Shell执行脚本
介绍 本文介绍如何通过Telnet协议连接到远程Shell,执行脚本,并获取执行结果: 相关文章: <[Jsch]使用SSH协议连接到远程Shell执行脚本>http://www.cnbl ...
- shell自动计算脚本
shell自动计算脚本 #!/bin/bash echo $(($)) [root@bogon ~]# sh b.sh 123+123246 let用户声明这个操作是要计算,后者的效率更高 (expr ...
- Shell菜单脚本
今天在这儿给大家分享一个我简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux. #!/bin/sh #Shell菜单演示 function menu () { cat <& ...
- shell常见脚本30例
shell常见脚本30例 author:headsen chen 2017-10-19 10:12:12 本文原素材出自网上,特此申明.有些地方加入我自己的改动 常见的30例shell脚本 1.用 ...
- shell常用脚本
shell常用脚本 author:headsen chen 2017-10-17 15:36:17 个人原创,转载请注明,否则依法追究法律责任 1,vim name.grep.sh 2,cat ...
随机推荐
- [开源] yvm - 自制Java虚拟机
项目地址 : https://github.com/racaljk/yvm 虚拟机现在已可运行(不过还有很多待发现待修复的bugs),已支持语言特性有: Java基本算术运算,流程控制语句,面向对象. ...
- C语言程序设计(基础)- 第7周作业(新)
要求一(25经验值) 完成PTA中题目集名为<usth-C语言基础-第七周作业>和<usth-C语言基础-12周PTA作业>中的所有题目. 注意1:<usth-C语言基础 ...
- Beta总结篇
45°炸 031502601 蔡鸿杰 031502604 陈甘霖 031502632 伍晨薇 一.项目预期进展及现实进展 项目预期计划 现实进展 Github使用 √ 日拍 (调用相机.相册) √ 足 ...
- Python科学计算(一)
作者 J.R. Johansson (robert@riken.jp) http://dml.riken.jp/~rob/ 最新版本的 IPython notebook 课程文件 http://git ...
- wireshark抓包分析tcp连接与断开
其实对于网络通信的学习,最好还是能够自己抓到包详细地一下,不然只单单通过文字和图的描述印象不够深刻.本文通过实际的抓包操作来看一下tcp的连接与断开是怎样的. 首先需要去https://www.wir ...
- linux系统命令学习系列-用户组管理
先复习一下上节内容: 设置密码命令passwd 用户信息修改命令usermod 用户删除命令userdel 作业:修改user1的用户id为505,家目录到admin,用户组为admin,最后删除us ...
- day-1 用python编写一个简易的FTP服务器
从某宝上购买了一份<Python神经网络深度学习>课程,按照视频教程,用python语言,写了一个简易的FTP服务端和客户端程序,以前也用C++写过聊天程序,编程思路差不多,但是pytho ...
- 前端面试题:JS中的let和var的区别
最近很多前端的朋友去面试被问到let和var的区别,其实阮一峰老师的ES6中已经很详细介绍了let的用法和var的区别.我简单总结一下,以便各位以后面试中使用. ES6 新增了let命令,用来声明局部 ...
- 我自己总结的C#开发命名规范整理了一份
我自己总结的C#开发命名规范整理了一份 标签: 开发规范文档标准语言 2014-06-27 22:58 3165人阅读 评论(1) 收藏 举报 分类: C#(39) 版权声明:本文为博主原创文章, ...
- Oracle数据库游标精解
游标 定义:标识结果集中数据行的一种容器(CURSOR),游标允许应用程序对查询语句返回的行结果集中的每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作.实际上是一种能从包括多条数据记录 ...