Bash脚本似乎在几个小时后停止工作

Bash脚本似乎在几个小时后停止工作,bash,Bash,所以,这个脚本运行了几个小时,但突然停止了它的工作。据top称,它仍在运行,但似乎不再起任何作用 WANSTAT=1 LTESTAT=1 tail -f /var/log/messages | grep --line-buffered mwan3 | while read -r INPUT ; do if [[ "$INPUT" == *"notice mwan3track[]: Interface wan (eth1) is offline" ]]; then WANSTAT

所以,这个脚本运行了几个小时,但突然停止了它的工作。据top称,它仍在运行,但似乎不再起任何作用

WANSTAT=1
LTESTAT=1

tail -f /var/log/messages | grep --line-buffered mwan3 | while read -r INPUT ; do
    if [[ "$INPUT" == *"notice mwan3track[]: Interface wan (eth1) is offline" ]]; then
    WANSTAT=0
    echo "WAN offline"
    elif [[ "$INPUT" == *"notice mwan3track[]: Interface lte (3g-lte) is offline" ]]; then
    LTESTAT=0
    echo "LTE offline"
    elif [[ "$INPUT" == *"ifup interface wan (eth1)" ]]; then
    WANSTAT=1
    elif [[ "$INPUT" == *"ifup interface lte (3g-lte)" ]]; then
        LTESTAT=1
    fi
    if [ $WANSTAT -eq 0 ] && [ $LTESTAT -eq 0 ]; then
        echo "All red\n"
    elif [ $WANSTAT -eq 0 ]; then
        echo "WAN red, LTE green\n"
    elif [ $LTESTAT -eq 0 ]; then
        echo "LTE red, WAN green\n"
    else
        echo "All green\n"
    fi

done

几小时后,日志系统关闭
/var/log/messages
,重命名它,并打开一个同名的新文件<但是,code>tail-f会继续监视不再写入的原始文件


使用
tail-F
来确保您继续查看名为
/var/log/messages
的文件,而不管该文件实际上是哪个文件。

几小时后,日志系统关闭
/var/log/messages
,重命名它,并打开一个同名的新文件<但是,code>tail-f会继续监视不再写入的原始文件


使用
tail-F
来确保继续查看名为
/var/log/messages
的文件,而不管该文件实际上是哪个文件。

Wild guess,但是可能您的某个管道缓冲区已满或在输入或输出上被阻塞?/var/log/messages仍在增长?这可能会有所帮助:使用strace-o-p.1观察系统调用。可能2.对3.我现在正在这么做。非常感谢。4.如果Cyrus的建议不起作用,我会试试。胡乱猜测,但可能您的某个管道缓冲区已满或在输入或输出上被阻塞?/var/log/messages仍在增长?这可能会有帮助:使用strace-o-p.1观察系统调用。可能2.对3.我现在正在这么做。非常感谢。4.如果塞勒斯的建议不起作用,我会试试。我会试试这个,如果它起作用,我会把它标记为答案。谢谢我会试试这个,如果结果有效,我会把它标记为答案。谢谢