文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>今天写了一个检测磁盘和负载的脚本

今天写了一个检测磁盘和负载的脚本

时间:2007-05-19  来源:liu1084

vi Disk_check.sh

#!/bin/sh
#Check the HOME excist and if not excist,CREATE them.
home_dir="/var/report";
ip_list="$home_dir/ip_list";
lock=$home_dir/lock;

if [ -f "$lock" ]
then
        echo "This programe is already running.";
        exit 0;
fi
touch $lock;

Check_dir()
{
if [ ! -d "$home_dir" ]
then
        mkdir -p $home_dir;
fi

echo "  11 12 13 14 15 16
        71 72 73 74 75 76 77 78 79
        41 42
        91 92 93
        101 102 103 104
        111 112 113 114 115 116 131 132 133 134 135 136 137 138
        216 217
        21
        22
        201 202
        51 52
        191 192 193 194 195
        " > $ip_list;
}

Yesterday()
{
month=`date +%m`
day=`date +%d`
year=`date +%Y`
month=`expr $month + 0`
day=`expr $day - 1`
if [ $day -eq 0 ]; then
month=`expr $month - 1`
if [ $month -eq 0 ]; then
month=12
day=31
year=`expr $year - 1`
else
case $month in
1|3|5|7|8|10|12) day=31;;
4|6|9|11) day=30;;
2)
if [ `expr $year % 4` -eq 0 ]; then
if [ `expr $year % 400` -eq 0 ]; then
day=29
elif [ `expr $year % 100` -eq 0 ]; then
day=28
else
day=29
fi
else
day=28
fi
;;
esac
fi
fi
if [ $month -lt 10 ]
then
        month=0$month;
fi
if [ $day -lt 10 ]
then
        day=0$day;
fi
YESTIME="$year$month$day";
return $YESTIME;
}

#INIT
NOWTIME=`date +'%Y%m%d'`;
NOWTIME2=`date +'%Y-%m-%d %H:%M:%S'`;
DISK_FILE=$home_dir/disk_file.$NOWTIME;
PRE_IP="10.9.30.";
Yesterday;
Check_dir;
FILE="$home_dir/MAIL$NOWTIME";
echo > $home_dir/MAIL$NOWTIME;

echo "IPADD    :10.9.30.22" >> $FILE;
echo "TIME     :$NOWTIME2" >> $FILE;
echo "HOST     :fx-scr12" >> $FILE;
echo "STAT     :Report" >> $FILE;
echo "INFO     :JHFSYS/LiuJun" >> $FILE;
echo "" >> $FILE;
echo "+------------------------------------------------------------------------------------------+" >> $FILE;
echo "|10.9.30.xxx  |DiskSize(Bytes) |Used(Bytes)     |Avail(Bytes)   |Use |Full(DAY) |Load      |" >> $FILE;
echo "+------------------------------------------------------------------------------------------+" >> $FILE;

for ip in `cat $ip_list`
do
        DISK_SIZE_GB_NOWTIME=`ssh  dljroot@$PRE_IP$ip --  df -lh | sed -ne '/\/$/p'  | awk '{print $2}'`;
        DISK_SIZE_KB_NOWTIME=`ssh  dljroot@$PRE_IP$ip --  df -l  | sed -ne '/\/$/p'  | awk '{print $2}'`;
        DISK_USED_GB_NOWTIME=`ssh  dljroot@$PRE_IP$ip --  df -lh | sed -ne '/\/$/p'  | awk '{print $3}'`;
        DISK_USED_KB_NOWTIME=`ssh  dljroot@$PRE_IP$ip --  df -l  | sed -ne '/\/$/p'  | awk '{print $3}'`;
        DISK_Avail_GB_NOWTIME=`ssh  dljroot@$PRE_IP$ip -- df -lh | sed -ne '/\/$/p'  | awk '{print $4}'`;
        DISK_Avail_KB_NOWTIME=`ssh  dljroot@$PRE_IP$ip -- df -l  | sed -ne '/\/$/p'  | awk '{print $4}'`;
        DISK_PERCENT=`ssh  dljroot@$PRE_IP$ip          -- df -l  | sed -ne '/\/$/p'  | awk '{print $5}'`;
        LOAD=`ssh  dljroot@$PRE_IP$ip -- uptime | awk -F"average:" '{print $2}' | awk -F"," '{print $1}' |tr -d ' '`;
        echo $LOAD;
        echo $Avail_FILE_yeday;
        Avail_FILE_today="$home_dir/$ip.avail.$NOWTIME";
        Avail_FILE_yeday="$home_dir/$ip.avail.$YESTIME";
        #touch $Avail_FILE_today $Avail_FILE_yeday;

        if [ -n "`cat $Avail_FILE_yeday`" ]
        then
                Avail_FILE_yeday=`cat $Avail_FILE_yeday`;
        else
                touch $Avail_FILE_yeday;
                echo $DISK_Avail_KB_NOWTIME > $Avail_FILE_yeday;
                Avail_FILE_yeday=`cat $Avail_FILE_yeday`;
        fi
        echo $DISK_Avail_KB_NOWTIME > $Avail_FILE_today;
        Avail_FILE_today=`cat $Avail_FILE_today`;
        FULL_DAY=`expr $Avail_FILE_yeday - $Avail_FILE_today`;
        if [ $FULL_DAY -ne "0" ]
        then
                FULL_DAY=`expr $DISK_Avail_KB_NOWTIME / $FULL_DAY`;
        else
                FULL_DAY=100;
        fi
        if [ $FULL_DAY -lt 7 ] || [ $LOAD -gt 3 ]
        then

                echo "|`echo $PRE_IP$ip | awk '{printf "%-12s",$1}'` `echo $DISK_SIZE_KB_NOWTIME\($DISK_SIZE_GB_NOWTIME\) | awk '{printf "%-18s",$1}'` `echo $DISK_USED_KB_NOWTIME\($DISK_USED_GB_NOWTIME\) | awk '{printf "%-15s",$1}'` `echo $DISK_Avail_KB_NOWTIME\($DISK_Avail_GB_NOWTIME\) | awk '{printf "%-15s",$1}'` `echo $DISK_PERCENT | awk '{printf "%-4s",$0}'` `echo $FULL_DAY | awk '{printf "%-10s",$0}'` `echo $LOAD | awk '{printf "%-10s",$0}'`|--Warning!!" >> $FILE;
        else
                  echo "|`echo $PRE_IP$ip | awk '{printf "%-12s",$1}'` `echo $DISK_SIZE_KB_NOWTIME\($DISK_SIZE_GB_NOWTIME\) | awk '{printf "%-18s",$1}'` `echo $DISK_USED_KB_NOWTIME\($DISK_USED_GB_NOWTIME\) | awk '{printf "%-15s",$1}'` `echo $DISK_Avail_KB_NOWTIME\($DISK_Avail_GB_NOWTIME\) | awk '{printf "%-15s",$1}'` `echo $DISK_PERCENT | awk '{printf "%-4s",$0}'` `echo $FULL_DAY |awk '{printf "%-10s",$0}'` `echo $LOAD |awk '{printf "%-10s",$0}'`|" >> $FILE;
        fi
done
echo "+------------------------------------------------------------------------------------------+" >> $FILE;
        echo "$DISK_Avail_KB_NOWTIME" > $Avail_FILE_today;
        echo "$DISK_Avail_KB_NOWTIME" > $Avail_FILE_yeday;
#mv $Avail_FILE_today $Avail_FILE_yeday;
rm -rf ./[0-9]*
rm $lock;
#mailx  -s "Official Report of DISK partition On $NOWTIME2" [email protected] < $FILE;
mailx  -s "Official Report of DISK partition On $NOWTIME2"  [email protected] < $FILE;
exit 0;

排行榜 更多 +
碳碳岛手游

碳碳岛手游

休闲益智 下载
拉什拉力赛3内置菜单

拉什拉力赛3内置菜单

赛车竞速 下载
疯狂车吃车3内置菜单

疯狂车吃车3内置菜单

赛车竞速 下载