답변:
한 달보다 더 오래 기록으로 돌아 가야 /var/log/wtmp.1
하는 경우 last
명령을 사용 하여 파일을 읽을 수 있습니다 .
last -f wtmp.1 john
이전 달의 사용자 로그인 기록이 표시됩니다 john
.
마지막 로그 출력은 너무 무겁지 않고 구문 분석하기가 쉽지 않으므로 특정 날짜 패턴을 찾기 위해 출력을 grep으로 파이프합니다.
last john | grep -E 'Aug (2[0-9]|30) '
8 월 20-30 일을 보여주기 위해. 또는 다음과 같은 것 :
last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) '
사용자를 위해 7 월 10-30 일을 취득하십시오 john
.
Linux에서 특정 날짜 범위의 로그인 기록을 추출하는 방법은 무엇입니까?
8 월 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
날짜 시간을 Epoch 시간으로 변환-ge
크거나 같다-le
작거나 같음을 사용하여 특정 사용자에 대해 수행 할 수도 있습니다 last <username>
.
last
출력을 읽을 수 있기 때문에 grep이 더 깨끗하지 않습니까?
grep
"8월 25일 21시"을 "8월 15일 9시"의?