Linux 시스템에서만 마지막 -10 정보를 지우는 방법은 무엇입니까? 마지막 정보를 지우는 명령을 실행했는데 > /var/log/wtmp
전체 로그인 정보가 지워지는데 마지막 -10 로그인 정보만 지워야 합니다.
답변1
wtmp 파일은 struct utmp
일련의 레코드입니다. 마지막 10개 레코드를 삭제하려면 먼저 utmp 레코드의 크기를 확인한 다음 wtmp 파일을 현재 크기에서 utmp 레코드 크기의 10배를 뺀 크기로 자릅니다.
간단한 C 프로그램을 사용하면 utmp 레코드의 크기를 알 수 있습니다.
#include <utmp.h>
#include <stdio.h>
struct utmp foo;
main()
{
printf("%lu\n", sizeof foo);
return 0;
}
Perl 스크립트는 wtmp 파일을 자릅니다.
$utmp_size = utmp_record_size_goes_here;
$wtmp_file = "wtmp filename goes here";
open WTMP, "+<", $wtmp_file or die "$wtmp_file: ", $!;
seek WTMP, -10 * $utmp_size, 2;
truncate WTMP, tell(WTMP);
close WTMP;