Linux: 내 시스템에서 모든 로그인 로그를 얻는 방법 [닫기]

Linux: 내 시스템에서 모든 로그인 로그를 얻는 방법 [닫기]

작년 이후 사용자가 내 시스템에 로그인한 횟수를 모두 알고 싶습니다. 명령을
사용했지만 last작동하지 않았습니다.

답변1

Redhat 스타일 Linux의 로그인 로그는 wtmp( man wtmp) 라고 하며 /var/log/기본적으로 에 저장되어 있으며 utmpdump(RHEL6에서)를 사용하여 검색할 수 있습니다.

[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root    ] [pts/3       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root    ] [pts/0       ] [192.168.1.101       ] [192.168.1.101  ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root    ] [pts/0       ] [192.168.1.100       ] [192.168.1.100  ] [Fri Sep 27 21:33:40 2013 UTC]
...

답변2

last원하는 것을 달성하는 데 사용할 수 있을 것 같습니다 . 정보를 추출하려면 마지막 명령에 날짜를 추가해야 합니다.

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

그러나 특정 사용자에 대한 정보를 찾으려면 마지막 명령을 수정 last username하고 while루프를 파이프로 연결할 수 있습니다. 특정 사용자의 지난 해 로그인 정보를 제공합니다.

위 명령을 테스트했는데 내 시스템에서 제대로 작동합니다. 위의 명령을 받았습니다.여기.

요구 사항에 맞게 명령의 날짜를 변경할 수 있습니다.

관련 정보