Как использовать awk для подсчета общего количества входных строк в файле? [дубликат]

Журналы вашего ядра (самые свежие, доступные для просмотра dmesg , более старые, с помощью journalctl -k или там, где настроено в /etc/rsyslog.conf ), вероятно, будут содержать сообщения, если сетевая карта теряет ссылку. И, конечно же, вы можете легко узнать, как выглядят эти сообщения, отключив кабель. Пример:

Jan 13 11:16:33 Zia kernel: r8169 0000:07:01.0 lan: link down

Потеря подключения к Интернету тяжелее, и обычно вы настраиваете что-то для обнаружения этого (либо внешний мониторинг, либо мониторинг внешних компьютеров с вашего компьютера). Это также не совсем двоичное состояние - у вас может быть частичное подключение к Интернету (может достигать некоторых хостов, но не всех). Тем не менее, вы можете поискать подсказки:

  • сообщения от NTP в журнале / журналах (например, о потерянных узлах) или проверить статистику одноранговых узлов NTP (если включено).
  • сообщения в журнале / журналах о сбоях сетевых подключений (например, если у вас регулярно работает fetchmail, он будет жаловаться, что не может подключиться к вашему серверу POP3).
  • VPN-подключения прерываются (я получаю много журналов OpenVPN при обрыве подключения к Интернету).
  • внезапная 0 нагрузка на веб-серверы (и т. Д.). Многие серверы регистрируют все полученные запросы в каком-либо журнале, зависящем от сервера.
  • аналогично, если вы регистрируете загрузку системы (средняя загрузка, очередь выполнения и т. Д.), Быстрое падение до 0 является подсказкой.
  • отсутствие шума в журналах брандмауэра (по крайней мере, если вы регистрируете заблокированные пакеты)
  • внезапное отсутствие случайных атак червя (я получаю много сообщений об ошибках аутентификации от различных служб, которые я использую, и не получаю их в течение нескольких часов будет хорошей подсказкой, что нет подключения к Интернету)
  • уровни трафика, если вы отслеживаете (например, используя Cacti, MRTG, collectd и т. д.)). Если нет, то, вероятно, ваш провайдер - возможно, они захотят поделиться?
  • если у вас есть другие машины, которые общаются с этой машиной, проверьте журналы этой машины. Могут быть сообщения об ошибках
  • , если вы предлагаете услуги другим людям, у них могут быть журналы.
  • Если у вас есть служба поддержки, они, вероятно, знают (по всем полученным звонкам).

По сути, вы занимаетесь детективом: вам нужно искать улики. Без мониторинга не будет сообщения журнала teh Interwebs is down .

1
30.04.2017, 18:47
2 ответа

Специальная переменная NR содержит номер текущей строки. Как только весь файл будет обработан, он будет содержать общее количество строк этого файла. Итак, вы можете сделать:

awk 'END{print NR}' file

Конечно, это немного глупо, когда есть программа, разработанная специально для этого:

wc -l file
14
27.01.2020, 23:11

Подсчитать общее количество входных строк в файле с awk:

awk 'END{ print NR }' input.data

Или с sed:

sed -n \$= input.data
2
27.01.2020, 23:11

Теги

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