[server] 로그인 기록은 어떻게 추출합니까?

특정 사용자의 로그인 기록 (예 : 로그인 및 로그 아웃 시간)을 알아야합니다. Linux에서 특정 기간 동안이 기록을 추출하려면 어떻게해야합니까?



답변

다음 last명령을 시도 할 수 있습니다 .

last john

사용자 john의 로그인 / 아웃 기록을 인쇄합니다. 그냥 달리는 반면

last

모든 사용자의 로그인 / 로그 아웃 기록을 인쇄합니다.


답변

한 달보다 더 오래 기록으로 돌아 가야 /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>.


답변