红联Linux门户
Linux帮助

关于shell编程和cron计划任务求教

发布时间:2012-07-03 09:27:30来源:红联作者:风雷正浩
近日一台服务器出现一点问题(具体原因尚未查明,初步诊断是因为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记录,没有重启网络服务的结果,更没有重启网络服务了!
文章评论

共有 2 条评论

  1. 于 2014-01-15 09:50:14发表:

    楼主我遇到了和你一模一样的问题,现在急切盼望解决方法,不知道怎么和你联系,若看到请加我qq287610678,注明linux,十分感谢!

  2. 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试试呢?