shellは自動adslダイヤルを実現し、接続状況を検出するためのスクリプト共有を行う。

1779 ワード

今日会社の同僚が私にadsl自動再起動のshellを要求しました。そして接続されているかどうかを検査します。これで内部テストサーバーがネットから落ちないようにできます。
システム:centos 5.x
スクリプト1:

cat /root/soft_shell/auto_adsl_1.sh
#!/bin/bash
gateway=`ifconfig ppp0 |grep P-t-P| cut -f 3 -d ":"|cut -f 1 -d " "`
inter=`ifconfig |grep ppp0|awk '{print $1}'`
N=2
if [[ $inter -eq ppp0 ]]
then
/sbin/adsl-stop
sleep 10
/sbin/adsl-start
sleep 20
pkgloss=`ping -c4 $gateway|grep 'transm' |awk -F',' '{print $2}' |awk '{print $1}'`
if [[ $pkgloss -lt $N ]]
then
echo "`date +%Y-%m-%d/%T` The network is not stable">>/root/adsl.txt
else
echo "`date +%Y-%m-%d/%T` The network is normal">>/root/adsl.txt
fi
fi
スクリプト2:

cat /root/soft_shell/auto_adsl_2.sh
#!/bin/bash
gateway=`ifconfig ppp0 |grep P-t-P| cut -f 3 -d ":"|cut -f 1 -d " "`
inter=`ifconfig |grep ppp0|awk '{print $1}'`
N=2
if [[ $inter != ppp0 ]]
then
/sbin/adsl-start
sleep 20
pkgloss=`ping -c4 $gateway|grep 'transm' |awk -F',' '{print $2}' |awk '{print $1}'`
if [[ $pkgloss -lt $N ]]
then
echo "`date +%Y-%m-%d/%T` The network is not stable">>/root/adsl.txt
else
echo "`date +%Y-%m-%d/%T` The network is normal">>/root/adsl.txt
fi
fi
ps:シナリオ2の役割は、adslダイヤルが接続されているかどうかを検出することです。