shell脚本-监控网络情况

#!/bin/bash
#-------------------------------------------------------------------------------
#FileName:networkchecking
#Revision:2.0
#Date:2017/09/14
#Author:XAD
#Email:1793360097@qq.com
#Website:http://onenice.blog.51cto.com/
#Description:checknetworkandsendmailtoXAD,wirteexecutinglog
#Notes:~
#-------------------------------------------------------------------------------
#copyright:2017(c)XAD
#License:GPL

DOMAIN1=www.baidu.com
DOMAIN2=www.google.com
DATE=`date"+%F%H:%M:%s"`
HOST=`hostname`
IPADDRESS=`ifconfigeth0|grep"inetaddr:"|awk-F[:""]+'{print$4}'`

##打印成功日志##
log_info()
{
if[!-x/var/log/$0];then
mkdir/var/log/$0
fi
echo"$DATE$HOST$IPADDRESS$USERexecute$0>>$1">>/var/log/$0/success.log
}

##打印错误日志##
log_error()
{
if[!-x/var/log/$0];then
mkdir/var/log/$0
fi
echo"$DATE$HOST$IPADDRESS$USERexecute$0>>$1">>/var/log/$0/error.log
}

##检测网络是否通畅##
check_network()
{
ping-c2$DOMAIN1>/dev/null
pingstatus1=$?
echo-n$pingstatus1>/tmp/netwok-status
if[$pingstatus1-eq0];then
log_info"Networkto$DOMAIN1isok"
else
log_error"Networkto$DOMAIN1iserror"
fi

ping-c2$DOMAIN2>/dev/null
pingstatus2=$?
echo-n$pingstatus2>>/tmp/netwok-status
if[$pingstatus2-eq0];then
log_info"Networkto$DOMAIN2isok"
else
log_error"Networkto$DOMAIN2iserror"
fi
}

##发送警报邮件输出发送日志##
sendmail()
{
STATUS=`cat/tmp/netwok-status`
if["$STATUS"-eq11];then
echo"TIME:$DATEHOSTNAME:$HOSTIP:$IPADDRESSNetworkisnormal!"|mail-s"PleasecheckyournetworkNow!"1793360097@qq.com
if[$?-eq0];then
echo"$DATE$HOST$IPADDRESS$USER>>sendmailisok!">>/var/log/$0/sendmail.log
else
echo"$DATE$HOST$IPADDRESS$USER>>sendmailiserror!">>/var/log/$0/sendmail.log
fi
fi
}

check_network
sendmail

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...