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

时间:2017-02-26 14:24:17

标签: bash

所以,这个脚本运行了几个小时,但突然停止了它的工作。根据顶部,它仍在运行,但它似乎不再做任何事情。

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

1 个答案:

答案 0 :(得分:5)

几个小时后,日志记录系统关闭/var/log/messages,重命名它,并打开一个名称相同的 new 文件。但是,tail -f继续观看原始文件,该文件已不再写入。

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