로그인 방법(물리적 콘솔 또는 SSH)을 포함하여 로그인된 세션과 세션이 지속된 기간을 모니터링하고 싶습니다.
이 정보가 있는 것 같은데 utmpdump /var/log/utmp
모든 필드를 설명하는 문서를 찾을 수 없습니다. 누군가 나를 깨달을 수 있습니까?
답변1
필드는 다음과 같습니다( struct utmp
괄호 안의 멤버 이름 - 참조 man 5 utmp
).
- 레코드 유형(
ut_type
) - 로그인 프로세스 PID(
ut_pid
) - 단말기 이름 접미사 또는
inittab(5)
ID(ut_id
) - 사용자 이름(
ut_user
) - 장치 이름 또는 tty - "
/dev/
" (ut_line
) - 원격 로그인을 위한 호스트 이름 또는 실행 수준 메시지를 위한 커널 버전(
ut_host
) - 원격 호스트의 인터넷 주소(
ut_addr_v6
) - 입력된 시간(
ut_time
또는 실제로ut_tv.tv_sec
)
ut_type
첫 번째 필드(또는 "레코드 유형")에 가능한 값은 utmp(5)
( 6
예 : 또는 "세션 리더 프로세스에 로그인한 사용자")에 LOGIN_PROCESS
설명되어 있습니다 .
답변2
print_utline
소스 코드의 기능에서 utmpdump
몇 가지 도움말을 찾을 수 있습니다.
static void print_utline(struct utmp ut, FILE *out)
{
....
/* pid id user line host addr time */
fprintf(out, "[%d] [%05d] [%-4.4s] [%-*.*s] [%-*.*s] [%-*.*s] [%-15s] [%-28.28s]\n",
ut.ut_type, ut.ut_pid, ut.ut_id, 8, UT_NAMESIZE, ut.ut_user,
12, UT_LINESIZE, ut.ut_line, 20, UT_HOSTSIZE, ut.ut_host,
addr_string, time_string);
}