网上找的一个Openwrt 重启脚本报错

查看 83|回复 7
作者:小贱猫   
网上找的一个Openwrt 定时检测网络不通则重启脚本,sh运行下,报错好像.咋个改
[Shell] 纯文本查看 复制代码#!/bin/sh
tries=0
logger "my network watchdog start"
while [[ $tries -lt 5 ]]
do
        if /bin/ping -c 1 8.8.8.8 >/dev/null
        then
            logger "network pass, exit."
            exit 0
        fi
        tries=$((tries+1))
        sleep 10
done
logger "network error, restart network"
/sbin/ifup wan
sh报错
dwcq.sh: line 15: syntax error: unexpected end of file (expecting "then")

报错, 重启

freelive   

https://www.cnblogs.com/cqwo/p/14233905.html
https://blog.csdn.net/u012453843/article/details/69803244
解决执行脚本报错的问题。
有可能是编码格式的问题,可以参考教程修改一下。
另外看下,
[ol]
  • if /bin/ping -c 1 8.8.8.8 >/dev/null[/ol]复制代码这句的结尾,是不是少一个;标点。
  • 小贱猫
    OP
      

    设置了一个定时。系统日志显示这个,
    Wed Mar 22 19:54:00 2023 cron.err crond[18241]: USER root pid 16992 cmd sh /root/dwcq.sh
    Wed Mar 22 19:54:00 2023 user.notice root: my network watchdog start
    Wed Mar 22 20:00:00 2023 cron.err crond[18241]: USER root pid 18386 cmd sh /root/dwcq.sh
    Wed Mar 22 20:00:00 2023 user.notice root: my network watchdog start
    Wed Mar 22 20:06:00 2023 cron.err crond[18241]: USER root pid 20016 cmd sh /root/dwcq.sh
    Wed Mar 22 20:06:00 2023 user.notice root: my network watchdog start,
    算是设置成功吗
    blfiag   

    贴一个之前用过的
    #!/bin/sh
    #sleep 100
    #或者安装luci-app-watchcat
    #/root/my_watchdog.sh
    DATE=`date +%Y-%m-%d-%H:%M:%S`
    tries=0
    echo --- my_watchdog start ---
    while [[ $tries -lt 5 ]]
    do
            if /bin/ping -c 1 ddnsto.com >/dev/null
            then
                    echo --- exit ---
    #               echo $DATE OK >>my_watchdog.log
                    exit 0
            fi
            tries=$((tries+1))
            sleep 10
    #       echo $DATE tries: $tries >>my_watchdog.log
    done

    #echo $DATE network restart >>my_watchdog.log
    #/etc/init.d/network restart

    echo $DATE reboot >>my_watchdog.log
    reboot
    */10 * * * * sh /root/my_watchdog.sh
    blfiag   

    对比了一下没有看出语法错误,试试最后一句改为 reboot
    /sbin/ifup wan  这个看看你的路由命令对不对
    小贱猫
    OP
      


    blfiag 发表于 2023-3-23 16:19
    贴一个之前用过的
    #!/bin/sh
    #sleep 100

    你的这个代码也是报这个错误,看样子不是代码的问题,像是格式什么的
    小贱猫
    OP
      


    freelive 发表于 2023-3-23 15:50
    https://www.cnblogs.com/cqwo/p/14233905.html
    https://blog.csdn.net/u012453843/article/details/698 ...

    应该就是你说的这个问题,试了其他的脚本也是报错这个,
    小贱猫
    OP
      


    blfiag 发表于 2023-3-23 16:20
    对比了一下没有看出语法错误,试试最后一句改为 reboot
    /sbin/ifup wan  这个看看你的路由命令对不对

    上网查了下  大概是因为我在windows下些的脚本,windows和linux的回车换行时不一样的字符,所以脚本在解释时会出现问题。用Notepad++转成Unix格式就行了
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部