Вы хотите /var/log/auth.log
, а не syslog.
Он будет содержать такие строки, как это:
Mar 20 10:47:24 Opus su[15918]: pam_unix(su:auth): authentication failure; logname=lfaraone uid=1000 euid=0 tty=/dev/pts/25 ruser=lfaraone rhost= user=root
Basic, наивный код для выполнения задачи будет следующим:
loginattempts = {"root": 0,
"someuser": 0,} # Usernames you want to check
with open('/var/log/auth.log', 'r') as authlog:
for line in authlog:
if "authentication failure" in line:
username = line.split('=')[-1] # split the string into an array,
# using '=' as the delimiter
if username in loginattempts: # is the username one we care about?
loginattempts[username] += 1
Как пользователь calmh предложил, вероятно, будет лучше долгосрочный синтаксический анализ с регулярными выражениями, но если вы не знаете их уже, это может быть нетривиально для изучения.
не только дублирует вопрос, но дубликат счета? Этот [маленький поросенок] [1] написал вопрос, и этот [маленький поросенок] [2] написал тот же вопрос, и оба этих свиньи названы Джонни ... [1]: http://stackoverflow.com/users/298077/johnny [2]: http://stackoverflow.com/users/298037/johnny – Kiril