Количество записывает соответствие шаблону с Awk

“Соединение, которому отказывают”, указывает, что существует брандмауэр, предотвращающий соединения или что нет никакого сервера, слушающего на том порте на целевом узле. Несколько возможных причин, почему Ваша попытка telnet работала бы, но не Ваша попытка ssh:

  • Демон SSH не работал, когда Вы попробовали ssh.
  • Вы не попробовали telnet и ssh от той же машины, и соединения SSH приняты от машины, Вы работали на ssh, но не от машины, Вы выполнили telnet.
  • Сервер SSH требует стука порта. Попытка telnet произошла достаточно скоро после стука порта, но законность удара истекла при попытке ssh.
  • IP-адрес сервера является динамичным и был присвоен другой машине в то время.
  • Что-то о конфигурации сети, измененной между Вашими попытками. Скорее всего, на Вашем маршрутизаторе, но возможно на Вашей клиентской машине, на сервере или любом промежуточном месте. Трудно размышлять, не имея большей информации о Вашей настройке сети.

11
21.10.2014, 06:54
3 ответа

Для начала вы можете использовать awk для поиска строк в файле, который содержит строку, как строка Итак:

$ awk '/CFS264/ { .... }' lastloggedin

Биты в {....} будут командами, необходимыми для подразделения количества строк с этой строкой. Чтобы подтвердить, что приведенное выше работает, вы можете использовать на печать $ 0 , чтобы просто распечатать эти строки, которые содержат строку поиска.

$ awk '/CFS264/ { print $0 }' lastloggedin

Что касается подсчета, если вы ищете «awk Counter», вы наткнулись на это так, чтобы Q & A под названием: , используя awk, чтобы считать нет записей . Показано, что метод будет достаточно для того, что вы описываете:

$ awk '/CFS264/ {count++} END{print count}' lastloggedin

Пример

$ last > lastloggedin

$ awk '/slm/ {count++} END {print count}' lastloggedin 
758

$ grep slm lastloggedin  | wc -l
758

$ grep -c slm lastloggedin
758

Примечание: Вы не говорите, какое поле CFS264 относится к выходу в последнюю очередь . Предполагая, что это имя пользователя, то вы можете дополнительно ограничить команду awk для поиска только этого поля, как так:

$ awk '$1=="CFS264" { print $0 }' lastloggedin
20
27.01.2020, 19:57

Я не так хорошо знаком с SuSE, но на других неисправностях можно использовать команду service для остановки/запуска/перезапуска служб. Возможно, что-то подобное могло бы сделать это:

$ sudo service dnsmasq restart
-121--186837-

Очевидно, что он выключает ширину вашего терминала. При правильном размере клеммы можно получить hexedit для отображения 8 столбцов вместо 9.

В примере

00000000   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000020   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000040   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000060   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000080   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
000000A0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
000000C0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
000000E0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000100   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000120   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000140   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000160   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
00000180   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
000001A0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ................................
000001C0   01 00 EE FE  FF FF 01 00  00 00 AF 32  CF 1D 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  ...........2....................
000001E0   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  00 00 55 AA  ..............................U.
00000200
00000220
00000240
00000260
00000280

I ширина указанного выше терминала набора до 151x55.

$ resize
COLUMNS=151;
LINES=55;
export COLUMNS LINES;
-121--186850-

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

last | awk 'NR==1,$1=="reboot"{if ($1 ~ /cfs264/ ) { count+=1; }}END{ print count; }'

Первая часть команды awk определяет диапазон - начиная с первой строки и до тех пор, пока первый столбец не будет перезагружен.

1
27.01.2020, 19:57

В следующем примере подсчитывается количество упоминаний меня без необходимости файла lastloggedin :

$ last | awk '$1=="yeti" { ++count } END { print count }' 
106

Если вы настаиваете на использовании или вас заставляют чтобы использовать файл lastloggedin , вы можете сделать это следующим образом:

$ last > lastloggedin
$ awk '$1=="yeti" { ++count } END { print count }' lastloggedin
106

Используйте $ 1 ~ / some_chars / , чтобы получить все имена пользователей, содержащие указанные символы или $ 1 ~ / ^ prefix / для соответствия только именам, начинающимся с префикса :

$ last | awk '$1~/et/ { ++count } END { print count }'
106
$ last | awk '$1~/^ye/ { ++count } END { print count }'
106


PS:

Просмотрите man awk для получения дополнительных подсказок ...; -)

awk очень полезен: вы можете делать много всего за очень короткое время обучения ...

4
27.01.2020, 19:57

Теги

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