Работавший для меня без проблем на 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
Вы можете попробовать команду last
:
last john
Она распечатывает историю входа / выхода пользователя john. В то время как запуск только
last
распечатывает историю входа / выхода всех пользователей.
Если вам нужно вернуться в историю дальше, чем на один месяц, вы можете прочитать файл /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
.
Как извлечь историю входов в систему для определенного диапазона дат в 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
.