linux에서 logout time 값을 어떻게 구하나요?
글쓴이: mini7510 / 작성시간: 수, 2004/12/01 - 12:00오전
리눅스에서 사용자의 로그아웃 시간을 구할려고 합니다.
솔라리스에서는 wtmpx 파일을 읽어서 DEAD_PROCESS type의 정보를
가지고 와서 logout time 값을 구할 수 있었습니다.
리눅스에서 동일하게 정보를 가지고 올려고 하는데요 DEAD_PROCESS type
정보를 출력해보면 아무런 정보가 들어가 있지 않았습니다.
USER_PROCESS type의 정보를 출력했을때는 로그인 시간의 값이 있었습니다. 해당 리눅스 서버에서 last 명령을 실행 했을경우 로그아웃 시간값이
출력이 되더라고요..
다른 정보에 사용자 로그아웃 값이 들어가 있는지 알고 싶네요..
간단하게나 소스를 첨부함니다.
#include <stdio.h> #include <utmpx.h> #include <sys/types.h> #include <fcntl.h> #include <time.h> #include <unistd.h> #include <string.h> #define WTMP "/var/log/wtmp" int main () { struct utmpx l_stUtmp; int l_nSize = 0; int l_nFd = 0; l_nSize = sizeof(utmpx); l_nFd = open(WTMP, O_RDONLY); if ( l_nFd < 0 ) { fprintf(stderr, "open failed \n"); return 0; } while( read(l_nFd, &l_stUtmp, l_nSize) == l_nSize ) { if (l_stUtmp.ut_type != DEAD_PROCESS) continue; if ( strlen(l_stUtmp.ut_user) < 1 ) continue; fprintf(stderr, "name:time--[%s:%ld]\n", l_stUtmp.ut_user, l_stUtmp.ut_tv.tv_sec); } return 0; }
Forums:
댓글 달기