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

Работавший для меня без проблем на OS X 10.6:

bash-3.2$ dig mail.wilmot.me.uk

; <<>> DiG 9.6.0-APPLE-P2 <<>> mail.wilmot.me.uk
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23413
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mail.wilmot.me.uk.     IN  A

;; ANSWER SECTION:
mail.wilmot.me.uk.  0   IN  CNAME   wilmot.me.uk.mail.aaisp.net.uk.
wilmot.me.uk.mail.aaisp.net.uk. 3471 IN A   81.187.30.14
wilmot.me.uk.mail.aaisp.net.uk. 3471 IN A   81.187.30.19

;; AUTHORITY SECTION:
mail.aaisp.net.uk.  3368    IN  NS  auth.primary-dns.co.uk.
mail.aaisp.net.uk.  3368    IN  NS  auth.secondary-dns.co.uk.

;; ADDITIONAL SECTION:
auth.primary-dns.co.uk. 3466    IN  A   81.187.30.42
auth.secondary-dns.co.uk. 3466  IN  A   81.187.81.33

;; Query time: 158 msec
;; SERVER: 10.6.18.110#53(10.6.18.110)
;; WHEN: Wed Feb 24 09:18:45 2010
;; MSG SIZE  rcvd: 225

bash-3.2$ dig mail2.wilmot.me.uk

; <<>> DiG 9.6.0-APPLE-P2 <<>> mail2.wilmot.me.uk
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41203
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;mail2.wilmot.me.uk.        IN  A

;; ANSWER SECTION:
mail2.wilmot.me.uk. 0   IN  CNAME   C.mail.aaisp.net.uk.
C.mail.aaisp.net.uk.    3357    IN  A   81.187.30.19
C.mail.aaisp.net.uk.    3357    IN  A   81.187.30.14

;; AUTHORITY SECTION:
ail.aaisp.net.uk.   3357    IN  NS  auth.primary-dns.co.uk.
mail.aaisp.net.uk.  3357    IN  NS  auth.secondary-dns.co.uk.

;; ADDITIONAL SECTION:
auth.primary-dns.co.uk. 3455    IN  A   81.187.30.42
auth.secondary-dns.co.uk. 3455  IN  A   81.187.81.33

;; Query time: 162 msec
;; SERVER: 10.6.18.110#53(10.6.18.110)
;; WHEN: Wed Feb 24 09:18:56 2010
;; MSG SIZE  rcvd: 216
94
задан 22 February 2016 в 12:00
3 ответа

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

last john 

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

last

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

133
ответ дан 28 November 2019 в 19:22

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

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

Последний вывод журнала не слишком тяжелый и относительно легкий parse, поэтому я, вероятно, передал бы вывод в 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 .

42
ответ дан 28 November 2019 в 19:22

Как извлечь историю входов в систему для определенного диапазона дат в 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} ' для извлечения даты и времени в соответствующем столбце из последнего вывода
  • +% s для преобразования даты и времени во время эпохи
  • -ge означает больше или равно
  • -le означает меньше или равно

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

21
ответ дан 28 November 2019 в 19:22

Теги

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