设为首页 收藏本站
查看: 722|回复: 0

Bash shell脚本练习(四)

[复制链接]

尚未签到

发表于 2018-8-24 07:35:26 | 显示全部楼层 |阅读模式
  1.判断磁盘使用空间
  


  • df -h | grep -v File | sed 's/%//g' | awk '{if($5>80)print"使用空间超过了80%:", $6}'



  • #!/bin/bash
  • #Filename:      disk.sh
  • #Date:  20110322

  • DISK_warn=80
  • DISK_per=`df -h | grep -v Filesystem| awk '{print int($5)}'`

  • for i in $DISK_per
  • do
  •         if [ "$i" -gt "$DISK_warn" ]; then
  •                 partion=`df -h | grep "$i%"|awk '{print $6}'`
  •                 echo "已使用空间超过80%: $partion"
  •         fi
  • done
  

判断磁盘使用百分比是否超过设定值,这里可以修改为通过邮件报警
2.监控CPU的负载情况  


  • #!/bin/bash
  • #Filename:  cpu_load.sh
  • #Date:  20120322

  • LOAD_15=$(uptime | awk '{print $NF}')
  • CPU_num=$(grep -c 'model name' /proc/cpuinfo)
  • LOAD_avg=`echo "scale=2;a=$LOAD_15/$CPU_num;if(length(a)==scale(a))print 0;print a"|bc`
  • INT_avg=`echo $LOAD_avg |cut -f 1 -d "."`
  • LOAD_warn=0.70

  • if (($INT_avg > 0)); then

  •         echo "当前服务器15分钟的平均负载为$LOAD_avg,超过警戒值1.0,请立即处理"

  • else
  •         LOAD_now=`expr $LOAD_avg \> $LOAD_warn`
  •         if (($LOAD_now == 1)); then
  •                 echo "当前服务器15分钟的平均负载为$LOAD_avg,超过警戒值0.70,请及时处理。"
  •         fi
  • fi
  

判断cpu负载情况,就否超出设定值。
3.监控SWAP使用情况  


  • #!/bin/bash
  • #Filename:  swap.sh
  • #Date:  20120322
  • TOTAL=$(free -m | grep "Swap:" | awk '{print $2}')
  • USED=$(FREE=$(free -m | grep "Swap:" | awk '{print $3}'))
  • FREE=$(free -m | grep "Swap:" | awk '{print $4}')


  • SWAP_per=$(expr $FREE \* 100 / $TOTAL)
  • SWAP_warn=50

  • if [ $SWAP_per -lt $SWAP_warn ]; then
  •         echo "当前服务器SWAP空间可用为:$FREE M,剩余不足50%."
  • fi
  

判断swap使用百分比是否超过设定值,这里可以修改为通过邮件报警
4.使用curl判断网站是否能正常访问  


  • #!/bin/bash
  • #Filename:      web.sh
  • #Date:  20110322

  • url=${1?"请输入检测的url地址"}
  • Status=$(curl -s --head $url | awk '/HTTP/{print $2}')
  • [ -z $Status ] && Status=400
  • if [ "$Status" -eq 200 ]; then
  •         echo "$url能正常访问"
  • else
  •         echo "$url不能访问,请检查!"
  • fi
  

PS:
.可以实现通过调用飞信API接口实现短信提示
API接口:http://sms.api.bz/fetion.php?username=13800138000&password=123456&sendto=13912345678&message=短信内容
.
以上shell脚本可通过配合crontab实现自动监控。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555705-1-1.html 上篇帖子: bash shell 数字时间钟表 下篇帖子: SSH Secure Shell Client中文乱码的解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表