답변:
한 달보다 더 오래 기록으로 돌아 가야 /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시"의?