LINUX.ORG.RU

История изменений

Исправление hanharr, (текущая версия) :

Меня смущала логика изначального скрипта. Переписал так, что изначально счетчик на ноль и предыдущая строка пустая. Затем мы сравниваем текущую строку и предыдущую и если они совпадают на протяжении 9 секунд, то на последней проверяем соединение. А если текущая строка и прошла отличаются, то сбрасываем счетчик. Изначально, было по моему не верно.

#!/usr/bin/env bash

i=0
old_line=""

tail -f -n 1 /var/log/fetchmail.log | while read line
do
    if [[ "$line" == "$old_line" ]]
    then
        _=$(( i++ ))
        if [ $i -eq 9 ]
        then
            nc -z -v imap.yandex.ru 993 » /tmp/test_connection
        fi
        sleep 1
    else
        i=0
    fi
    old_line="$line"
done

Исходная версия hanharr, :

Меня смущала логика изначального скрипта. Переписал так, что изначально счетчик на ноль и предыдущая строка пустая. Затем мы сравниваем текущую строку и предыдущую и если они совпадают на протяжении 9 секунд, то на последней проверяем соединение. Изначально, было по моему не верно.

#!/usr/bin/env bash

i=0
old_line=""

tail -f -n 1 /var/log/fetchmail.log | while read line
do
    if [[ "$line" == "$old_line" ]]
    then
        _=$(( i++ ))
        if [ $i -eq 9 ]
        then
            nc -z -v imap.yandex.ru 993 » /tmp/test_connection
        fi
        sleep 1
    else
        i=0
    fi
    old_line="$line"
done