저는 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
특정 사용자에 대해 이 데이터를 가져오는 데 대신 사용할 수 있는 다른 명령이 있습니까 ?
고쳐 쓰다
last
zsh 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"
그리고 날짜에 연도를 표시하세요.