Відповіді:
Журнали входу в Linux в стилі redhat називаються wtmp
( man wtmp
), зберігаються /var/log/
за замовчуванням, і ви можете отримати їх за допомогою utmpdump
(на RHEL6).
[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root ] [pts/3 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root ] [pts/0 ] [192.168.1.100 ] [192.168.1.100 ] [Fri Sep 27 21:33:40 2013 UTC]
...
Здається, last
можна використовувати для досягнення того, що ви намагаєтеся зробити. Вам потрібно додати дату до останньої команди, щоб отримати інформацію.
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
Однак якщо ви хочете знайти інформацію про певного користувача, ви можете змінити останню команду як last username
і потім while
передати цикл їй. Це дасть вам інформацію про інформацію про вхід конкретного користувача за останній рік.
Я перевірив вищевказану команду, і вона прекрасно працює в моїй системі. Я взяв звідси вищезгадану команду .
Ви можете змінити дату в команді відповідно до ваших вимог.
last
команду - але ви повинні робити більше досліджень , ніж це, і в будь-якому випадку, ви на самому ділі не вказані , чомуlast
команда не є корисною. також визначте "увійшов". Ви хочете відстежувати вхід консолі? SSH логіни? Emacs забороняють,telnet
логіни? або просто щось автентичне з PAM? бути конкретним .