B
Bash Days | Linux | DevOps
@bashdays24.1K подп.
7.2Kпросмотров
29.8%от подписчиков
19 марта 2026 г.
Score: 7.9K
Всем привет. Я тут с удивлением обнаружил, что в debian 13 исчезли команды last и lastb которые позволяли смотреть удачные/неудачные попытки ssh/sftp 🔤🔤🔤🔤🔤🔤🔤 ㅤ А я к ним так привык... journalctl — прекрасен, но лазить по логам — так себе занятие. Решил немного упростить, чтобы вывод был в виде таблички: timestamp ip login Иногда мальчиши-плохиши подсовывают «пустого» пользователя " ", и чтобы число полей было всегда три, я заменяю его на ":", используется в качестве разделителя /etc/passwd, и поэтому такого логина не должно быть. journalctl --output=short-unix --unit=ssh | gawk '{match($0,/.for( invalid user)? +(.?) +from (([0-9]{1,3}[.]){3}[0-9]{1,3})/,a) #^ это одна длинная строка if(a[2]==""){a[2]=":"} # заменили "пробельного usera" на ":" if(a[3]!="") print $1, a[3],a[2]}' #Отображение только неудачных попыток journalctl --output=short-unix --unit=ssh | gawk '/error: maximum/{match($0,/.for( invalid user)? +(.?) +from (([0-9]{1,3}[.]){3}[0-9]{1,3})/,a) #^это одна длинная строка if(a[2]==""){a[2]=":"} # заменили "пробельного usera" на ":" if(a[3]!="") print $1, a[3],a[2]}' Если нужно ограничить диапазон дат можно использовать ключ --since="@TIMESTAMP" где TIMESTAMP дата вида 1773848322.767923 или 1773848322 или просто --since="-1 day" Если не нравится дата в timestamp замените последнюю строчку на: if(a[3]!="") print strftime("%Y%m%d_%H%M%S",$1), a[3],a[2]}' Или какой-нибудь свой формат. Я, вообще не спец по regexp, поэтому, если кто-нибудь поможет ускорить выражение — буду благодарен. Всем кода без багов. 🛠 #bash #linux — 💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
7.2K
просмотров
1657
символов
Да
эмодзи
Нет
медиа

Другие посты @bashdays

Все посты канала →