脚本内容:
代码: 全选
#!/bin/bash
IP="0.0.0.0"
#循环
while :
do
#获取IP
IP=`ifconfig |grep -A1 "ppp0" |grep "inet" |awk -F . '{print $1}'|awk -F \: '{print $2}'`
#检查IP是否为空
if [ "${IP}" != "" ]
then
echo "IP head is $IP"
#获取IP头是否正确
if [ "$IP" != "100" ]
then
echo "Finish,Exit!"
exit 0
else
sleep 1
echo "No luck,clean up and retry!"
sleep 1
echo "Killing pppd process..."
# sudo killall pppd
sleep 2
echo "Clearing IP"
sleep 3
# pon dsl-provider
echo ""
IP=""
sleep 20
fi
else
#sudo killall pppd
sleep 5
echo "run ppp"
#pon dsl-provider
sleep 20
IP=""
fi
done
*/1 * * * * /home/qiangwushuang/ppp/pppoe.sh >> /home/qiangwushuang/ppp/pppoe.log
但是当运行这个脚本的时候会重新启动一个cron进程。导致系统由两个定时任务的进程。 改了一晚上都没有改好。。
定时任务执行前: 定时任务执行后: 并且使用ps -A|grep cron,显示也是两个进程。
我测试发现只要里面有while循环就会导致这个问题。