사용자의 마지막 로그인 날짜-시간을 ISO 8601 호환 날짜 또는 타임스탬프로 얻는 방법은 무엇입니까?

사용자의 마지막 로그인 날짜-시간을 ISO 8601 호환 날짜 또는 타임스탬프로 얻는 방법은 무엇입니까?

저는 macOS(Ventura 13.6.3)에서 zsh(버전 5.9 x86_64-apple-darwin22.0)를 실행하고 있습니다.

특정 사용자가 지난 X일 이내에 로그인했는지 알고 싶습니다. 이를 달성하기 위해 사용자의 마지막 로그인 날짜 시간을 가져오거나 로그인하지 않은 경우 null을 가져오고 싶습니다. 나는 사용하려고last이를 수행하라는 명령입니다. 내 문제는 내가 실행할 때

last -1 "john_smith"

나는 다음 문자열을 얻습니다.

john_smith    ttys001    Wed Dec 17 19:19    still logged in

Dec 17를 사용하여 이 문자열을 제거 할 수 있습니다 last -1 "john_smith" | awk '{print $4, $5}'. 그러나 Dec 17연도가 포함되지 않았기 때문에 이것은 내 문제를 해결하지 못합니다 . 그럴까 말까 궁금해2023-12-17 또는1971-12-17.

last일반적인 ISO 8601 호환 날짜(또는 타임스탬프)를 강제로 생성하거나 최소한 표준 출력에 연도를 추가하여 그렇게 할 수 있는 방법이 있습니까 Dec 17, 2023? 아니면 last특정 사용자에 대해 이 데이터를 가져오는 데 대신 사용할 수 있는 다른 명령이 있습니까 ?

고쳐 쓰다

lastzsh v. 5.9에서 전체 로그인 날짜를 얻는 방법을 찾을 수 없었고 다른 명령을 사용하게 되었습니다( /Users수정 시간이 123일 이상인 해당 명령 아래의 모든 폴더를 찾았습니다. 크레딧은 다음과 같습니다).이 기사):

find /Users -type d -maxdepth 1 -mindepth 1 -mtime +123d

답변1

에 따르면 man last:

-y          Report the year in the session start time.

따라서 다음을 실행할 수 있습니다.

last -1y "john_smith"

그리고 날짜에 연도를 표시하세요.

관련 정보