"마지막"명령 : 최신 사용자 로그인을 표시하는 방법?


19

아시다시피, last명령은 모든 사용자의 최근 로그인을 보여줍니다. 그러나 내 PC (CentOS)는 대략 1 년 동안 사용되었으며 많은 사용자가 기록되었습니다. last명령 을 사용하려고했지만 2013 년 6 월부터 2013 년 9 월까지만 표시되었습니다.

제 질문은 최근에 로그인 한 최신 사용자를 어떻게 표시 할 수 있습니까 (2013 년 12 월부터 2014 년 1 월까지)?


를 사용하여 /var/log/wtmp파일이 존재 하는지 그리고 마지막 변경 시간 을 확인할 수 있습니까 stat?
mkc

또한 마지막 명령 출력의 최신 항목이 맨 위에 있습니다.
mkc

어쨌든 바닥까지 내려 놓을까요?
Thomas

1
시도last | tac
mkc

1
그냥 통계를 할 :stat /var/log/wtmp
mkc

답변:


15

last일반적으로 로그 파일에서 읽고 /var/log/wtmp과거에 사용자가 성공적으로 로그인 한 항목을 인쇄합니다. 마지막으로 로그인 한 사용자 항목이 맨 위에 표시되도록 출력됩니다. 귀하의 경우 아마도 이것 때문에 통지가 나지 않았습니다.

파일 /var/log/wtmp이 마지막으로 작성된 시간 을 확인하기 위해 다음 명령을 사용할 수 있습니다 stat.

stat /var/log/wtmp

출력을 반대로 인쇄하기 위해 GNU tac다음과 같이 last의 출력을 (cat의 반대쪽)에 파이프 할 수 있습니다 .

last | tac

16

lastlogLinux 에서 명령 명령을 사용할 수도 있습니다 . 사용자 로그인 로그를 볼 때 날짜 범위에 대해 더 세밀한 제어를 제공합니다.

lastlog 맨 페이지에서 발췌

   lastlog - reports the most recent login of all users or of a given user

지난 100 일 동안 시스템에 로그인 한 사용자를 찾습니다.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

이것은이 사용자가이 시스템에 마지막으로 로그인 한 시간을 나타냅니다. 시간 범위는 지난 100 일을 나타냅니다. 오늘 전 ( -b 0) 및 100 일 전 ( -t 100).

또한 범위를 생략하고 로그인 한 모든 사용자와 마지막으로 로그인 한 시간을 확인하여 모든 사용자를 표시 할 수도 있습니다.


0

이 스크립트를 사용해보십시오 :

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done

1
Unix.SE에 오신 것을 환영합니다. 이 방법이 기존 답변에 비해 어떤 이점이 있는지 설명해 주시겠습니까?
Stephen Kitt

이 스크립트는 UNIX에서 모든 사용자에 대한 마지막 로그 타임 스탬프 (AIX)을 줄 것이다

정보 주셔서 감사합니다; 이에 대한 답변을 편집 하십시오. 질문은 AIX가 아니라 CentOS에 관한 것입니다.
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.