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

使用shell编写一个检测系统参数的脚本

[复制链接]

尚未签到

发表于 2018-8-26 11:11:05 | 显示全部楼层 |阅读模式
  检测os的脚本
  目的:学了shell语言后,根据已学编写一个shell的脚本实现检测部分系统参数实现邮件告警,
  (之前刚刚学习写的不怎么完善和实用!)
  [root@cml scripts]# cat os.monitor.sh
  #!/bin/bash
  ###########
  #name=linux查看系统资源脚本
  #auth=cml
  #time:2015
  ###########
  DATE=`date "+%F %H:%M:%S"`
  HOST=`hostname`
  ###########
  echo "check:$DATE"
  check_yum(){
  yum install -y sysstat
  yum install -y iftop
  yum install -y lsof
  }
  check_mail(){
  rpm -qa | grep mailx-12.4-8.el6_6.x86_64
  mail=`echo $?`
  if [ $mail -eq 0 ]; then
  echo "mail is installed"
  else
  yum install -y mailx
  fi
  service postfix status
  mail=`echo $?`
  if [ $mail -eq 0 ]; then
  echo "postfix is running!"
  else
  echo "postfix not running"
  service postfix start
  echo "postfix successfully runnig"
  fi
  echo -e "\033[32m=========check_mail is ok========\033[0m"
  ##只是为了好看分隔
  }
  check_sys(){
  #       echo "检查主机名,系统参数!"
  echo -n "HOSTNAME:"
  echo $HOST
  echo -n "系统版本:"
  cat /etc/issue
  echo -n "系统的参数:"
  cat /proc/version
  echo -e "\033[32m=========check_sys is ok========\033[0m"
  }
  check_CPU(){
  #       echo "检查CPU,LOAD,WA,IDEL情况!"
  echo -n "CPU内核:"
  cpu=`cat /proc/cpuinfo | grep processor | wc -l`
  echo $cpu
  echo -n "load:"
  load1=`w | awk 'NR==1 {print $10}' | awk -F '.' '{print $1}'`
  load2=w | awk 'NR==1 {print $10}'
  echo $load2
  if [ $load1 -lt $cpu ];  then
  echo "send_mail to ********@qq.com"
  echo "your cpu is normal! cpu=$cpu load balance=$load2  time:$DATE" | mail -s "check your CPU" ********@qq.com
  else
  echo "your load1000 is abnormality time:$DATE"
  fi
  echo -e "\033[32m=========check_mem is ok========\033[0m"
  }
  check_network(){
  #       echo "检查网卡eth0的流量!"
  #        iftop -t >> /tmp/network
  echo -n "接收端流量:"
  #cat /tmp/network | grep send |  awk 'NR==1 {print $4}'
  ifconfig eth0 | awk 'NR==8 {print $3}' | awk -F '(' '{print $2}'
  echo -n "发送端流量:"
  #cat /tmp/network | grep receive | awk 'NR==1 {print $4}'
  ifconfig eth0 | awk 'NR==8 {print $7}' | awk -F '(' '{print $2}'
  echo -e "\033[32m=========check_network is ok========\033[0m"
  }
  check_TCP(){
  #       echo "检查TCP连接状态!"
  echo -n "TCP连接状态:"
  netstat -an | awk '/^tcp/{a[$NF]++}END{for (i in a)print i,a}'
  listen=`netstat -an | awk '/^tcp/{a[$NF]++}END{for (i in a)print i,a}' | awk 'NR==2 {print $2}'`
  if [ $listen -gt 7 ]; then
  echo "send_mail to ********@qq.com "
  echo "your connection is normal! time:$DATE" | mail -s "check your TCP " ********@qq.com
  else
  echo "your now-listen>Normal-listen now-listen=$listen $DATE"
  fi
  echo -e "\033[32m=========check_TCP is ok========\033[0m"
  }
  check_DISK(){
  #       echo "检查磁盘的使用情况!"
  echo  "/分区的使用百分比:"
  root=`df -h | awk 'NR==3{print $4}' | awk -F "%" '{print $1}'`
  echo $root
  echo  "INNODE使用百分比:"
  df -i | awk 'NR==3 {print $4}'
  if [ $root -lt 80 ]; then
  echo "send_mail to ********@qq.com"
  echo "your disk:/ is normal! time:$DATE " | mail -s "check your DISK" ********@qq.com
  else
  echo "your disk:/ greater than 80% /:$root time:$DATE"
  fi
  echo -e "\033[32m=========check_DISK is ok========\033[0m"
  }
  monitor2(){
  check_sys
  check_CPU
  check_mem
  check_network
  check_TCP
  check_DISK
  }
  monitor2 >> /tmp/$(hostname).txt


运维网声明 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.iyunv.com/thread-556763-1-1.html 上篇帖子: shell编程基础一(多种方法求值1+2+..+100) 下篇帖子: shell中使用while循环ssh的注意事项
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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