Відповіді:
Якщо вам потрібно повернутися назад в історію, ніж на один місяць, ви можете прочитати /var/log/wtmp.1файл із lastкомандою.
last -f wtmp.1 johnпокаже історію входів для попереднього місяця для користувачів john.
Вихід останнього журналу не надто важкий і порівняно простий для розбору, тому я, мабуть, передавав би результат у грепп, щоб шукати конкретний шаблон дати.
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>.
lastвихід досить читабельний?
grepз "15 серпня 09:00" до "25 серпня 21:00"?