近日一台服务器出现一点问题(具体原因尚未查明,初步诊断是因为php负载太高导致网络拥堵,最终网络崩溃无法上网。这是题外话了,与本主题无关),此时服务器断网,无法连接网络,可执行service network restart 重启网络服务即可恢复。
于是,我写了一个脚本,每2分钟检测网络一次,当ping不通网关时,即记录断网日志,并重启网络服务(service network restart),ping通则只记录日志。
现在问题是如果手动运行脚本可以进行正常的检测和记录,断网亦可重启网络服务,但是添加到计划任务后,一切都好,唯独关键的重启网络服务(service network restart)不能生效!(日志有断网记录)
附上脚本,望指教!
1 #!/bin/sh
2 ping -c 1 192.168.20.254 >/root/check/res
3 grep ttl /root/check/res >/root/check/rus
4 if [ `wc -l /root/check/rus |awk '{print $1}'` = 0 ]
5 then
6 date >>/root/check/off_log
7 echo " offline!" >>/root/check/off_log
8 service network restart >>/root/check/off_log
9 else
10 date >>/root/check/log
11 echo "online" >>/root/check/log
12 fi
脚本相对简单,就不解释了。关键是第八行,我是想将运行结果输出到off_log文件中的,但是查看off_log只有offline记录,没有重启网络服务的结果,更没有重启网络服务了!
于 2014-01-15 09:50:14发表:
楼主我遇到了和你一模一样的问题,现在急切盼望解决方法,不知道怎么和你联系,若看到请加我qq287610678,注明linux,十分感谢!
haosw86 于 2012-07-06 12:12:02发表:
初学shell编程,有点小疑问!
7 echo " offline!" >>/root/check/off_log
8 service network restart >>/root/check/off_log
已经offline了,怎么还能restart呢,不是该执行start吗?
用service network start换成 /etc/rc.d/init.d/network start试试呢?