zoukankan      html  css  js  c++  java
  • Shell监控脚本

    #!/bin/bash
    ip=""
    user=""
    password=""
    num=0
    time=$(date '+%y%m%d%H%M')
    echo "$time: Monitor is running..."
    echo "<Servers> ">>/home/ETHAN/SMR/Logs/$time.xml
    for mystr in $(cat /home/ETHAN/SMR/hosts2)
    do
      let num=num+1
      if [ $num -eq 1 ];then ip=$(echo $mystr)
      elif [ $num -eq 2 ];then user=$mystr
      elif [ $num -eq 3 ];then password=$mystr
      elif [ $num -eq 4 ];then describe=$mystr
      fi
      if [ $num -eq 4 ];then let num=0
     
      echo "---------$ip----------"
      echo "<ServerInfos> ">>/home/ETHAN/SMR/Logs/$time.xml
      useCpu=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087 ps aux|awk '{print $3}'|awk 'BEGIN{total=0}{total+=$1}END{print total}')
      totalMemory=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087 free |head -n2|tail -n1|awk '{print $2}') 
      useMemory=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087 free |head -n2|tail -n1|awk '{print $3}') 
      MemoryPct=$(expr "scale=3;$useMemory/$totalMemory*100"|bc)
      DiskPct=$(expr "scale=3;$usedDisk/$totalDisk*100"|bc)
      rootDisk=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087  df -H|head -n2|tail -n1|awk '{print $4}')
      rootDiskPct=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087  df -H|head -n2|tail -n1|awk '{print $5}')
      loadFivteen=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087  uptime|awk '{print $10}')
      runTime=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087  uptime|awk '{print $3}'|cut -d, -f1)
      diskMaxUsage=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087 df -H|awk '{print $5,$6,$4}'|sed '1d' |awk 'BEGIN {max=0}{if(max<=$1) max=$1","$2","$3 }END{print max}')
      #load=$(/usr/local/bin/sshpass -p$password ssh -o StrictHostKeyChecking=no $user@$ip -p10087  uptime|awk '{print $10}'|cut -d, -f1') 
      echo "Cpu:$useCpu"
      echo "Memory:$MemoryPct"
      echo "RootFreeSpace:$rootDisk"
      echo "RootFreeSpace:$rootDiskPct"
      echo "RunTime:$runTime"
      echo "LoadIn15Min:$loadFivteen"
      echo "diskMaxUsage:$diskMaxUsage"
      echo "<IP>$ip</IP>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<Cpu>$useCpu</Cpu>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<Memory>$MemoryPct</Memory>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<RootDisk>$rootDisk</RootDisk>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<RootDiskPct>$rootDiskPct</RootDiskPct>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<RunTime>$runTime</RunTime>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<LoadIn15Min>$loadFivteen</LoadIn15Min>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<Describe>$describe</Describe>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "<diskMaxUsage>$diskMaxUsage></diskMaxUsage>>">>/home/ETHAN/SMR/Logs/$time.xml
      echo "</ServerInfos> ">>/home/ETHAN/SMR/Logs/$time.xml
      fi
    done
    echo "</Servers>">>/home/ETHAN/SMR/Logs/$time.xml
    rm -rf /home/ETHAN/SMR/UseLog/*
    cp /home/ETHAN/SMR/Logs/$time.xml /home/ETHAN/SMR/UseLog/InfosFmLinux.xml
    echo "Monitor is over."
  • 相关阅读:
    lhgdialogv3.13 使用点滴
    CheckBoxList 取值 及选中相关用法
    repeater 及 gridview 中绑定短日期
    数据库中日期大小的判断
    父子不同窗口间刷新传值
    子级Repeater获取父级Repeater绑定项的值
    vs.net 2010 web 项目中使用 webservice
    web打印实现方案 Lodop6.034 使用方法总结
    用 showModalDialog 方法回传数据到父页中去
    vs.net2010中使用 Ajax Control Toolkit
  • 原文地址:https://www.cnblogs.com/EthanSun/p/10655984.html
Copyright © 2011-2022 走看看