아시다시피, last
명령은 모든 사용자의 최근 로그인을 보여줍니다. 그러나 내 PC (CentOS)는 대략 1 년 동안 사용되었으며 많은 사용자가 기록되었습니다. last
명령 을 사용하려고했지만 2013 년 6 월부터 2013 년 9 월까지만 표시되었습니다.
제 질문은 최근에 로그인 한 최신 사용자를 어떻게 표시 할 수 있습니까 (2013 년 12 월부터 2014 년 1 월까지)?
답변
last
일반적으로 로그 파일에서 읽고 /var/log/wtmp
과거에 사용자가 성공적으로 로그인 한 항목을 인쇄합니다. 마지막으로 로그인 한 사용자 항목이 맨 위에 표시되도록 출력됩니다. 귀하의 경우 아마도 이것 때문에 통지가 나지 않았습니다.
파일 /var/log/wtmp
이 마지막으로 작성된 시간 을 확인하기 위해 다음 명령을 사용할 수 있습니다 stat
.
stat /var/log/wtmp
출력을 반대로 인쇄하기 위해 GNU tac
다음과 같이 last의 출력을 (cat의 반대쪽)에 파이프 할 수 있습니다 .
last | tac
답변
lastlog
Linux 에서 명령 명령을 사용할 수도 있습니다 . 사용자 로그인 로그를 볼 때 날짜 범위에 대해 더 세밀한 제어를 제공합니다.
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
).
또한 범위를 생략하고 로그인 한 모든 사용자와 마지막으로 로그인 한 시간을 확인하여 모든 사용자를 표시 할 수도 있습니다.
답변
이 스크립트를 사용해보십시오 :
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