Получить данные за последние 5 минут и добавить в столбец номер неудачного вывода.

NetworkManager намеренно не останавливает работу сети при завершении работы. Поскольку он поддерживает перехват («управления» )сетевыми устройствами, которые были запущены системой конфигурации сети системы, например. ifcfg в Fedora, ifupdown в Debian. Он также оставляет систему, чтобы остановить их.

Однако теперь Fedora считает ifcfg устаревшим и не включает его по умолчанию. Поэтому скрипт stop также никогда не запускается.

0
09.01.2020, 10:44
1 ответ

Ниже команда awkсначала получает текущие и прошедшие 5 минут назад даты и преобразует их во время эпохи(Время Unix)и устанавливает в startTime и endTime соответственно; а затем для каждой строки, которую мы читаем, он также преобразует столбец даты первого поля в эпоху и проверяет, находится ли время между startTime и endTime, а затем выполняет необходимые вычисления. В поле ENDвыводим последнее рассчитанное значение переменных sum, totalи nonZero.

awk -vstartTime="$(date -d'-5 minutes' '+%s')" \
    -vendTime="$(date '+%s')" \
    -F, '{ epoch="date -d\"" $1 "\" +%s"; epoch |getline timestamp; }
         (timestamp>=startTime && timestamp<=endTime){ sum+=$NF; total++; if($NF!=0)nonZero++ }
END{ print sum, total, nonZero }' OFS=, infile

ручной тест на заданных тестовых данных:

awk -vstartTime=1578571800 \
    -vendTime=1578572100 \
    -F, '{ epoch="date -d\"" $1 "\" +%s"; epoch |getline timestamp; }
         (timestamp>=startTime && timestamp<=endTime){ sum+=$NF; total++; if($NF!=0)nonZero++ }
END{ print sum, total, nonZero }' OFS=, infile
1
28.01.2020, 02:38

Теги

Похожие вопросы