Назад | Перейти на главную страницу

Как мне извлечь историю входа в систему?

Мне нужно знать историю входа в систему для определенного пользователя (т.е. время входа и выхода). Как мне извлечь эту историю для определенного диапазона дат в Linux?

Вы можете попробовать last команда:

last john 

Он распечатывает историю входа / выхода пользователя john. В то время как бег просто

last

распечатывает историю входа / выхода всех пользователей.

Если вам нужно вернуться в историю дальше, чем на один месяц, вы можете прочитать /var/log/wtmp.1 файл с last команда.

last -f wtmp.1 john покажет историю входов в систему за предыдущий месяц для пользователя john.

Последний вывод журнала не слишком тяжелый и относительно простой для анализа, поэтому я, вероятно, передал бы вывод в grep, чтобы найти конкретный шаблон даты.

last john | grep -E 'Aug (2[0-9]|30) ' показать 20-30 августа. Или что-то вроде:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) ' приобрести 10-30 июля для пользователя john.

Как извлечь историю входов в систему для определенного диапазона дат в Linux?

Пример для вывода списка всех пользователей, входивших в систему с 25 по 28 августа:

last | while read line
do
    date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`
    [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line
done
  • awk '{ print $5" "$6" "$7 }' для извлечения даты и времени в соответствующем столбце из last вывод
  • +%s преобразовать дату и время во время эпохи
  • -ge означает больше или равно
  • -le означает меньше или равно

Вы также можете сделать это для конкретного пользователя с помощью last <username>.