로그 통합 자 프로그램을 작성 중입니다. 즉, 로그를 생성하는 시스템이 있습니다. my.log, my.log.1, my.log.2, my.log.3 ...파일 - 유닉스 - 로그 파일에 1 : 1로 대응
각 반복마다 저장하려는 내가 특정 파일에서 읽은 라인. 그래서 다음 반복에서 그 위치에서 계속 읽을 수 있습니다.
문제는 파일이 가득 할 때, 그들은 롤이다 : 마지막 로그가 삭제 ... my.log.2는 my.log.3 my.log.1이 my.log하게된다. 2 my.log는 my.log.1 되고 새로운 my.log는
내가 inode를 사용하여, 그들을 추적을 당연히 유지할 수 생성 - 거의 파일에 일대일 대응이다. 일부 파일 (의 로깅은 매우 빠르고 가정 해 봅시다)을 삭제하고 새로운 파일을 생성하며, 일부는 아이 노드를 가지고있다 - 내 반복 둘 사이를 : 나는 다음과 같은 시나리오에 대한 두려움 때문에 나는, "거의"라고방금 삭제 된 파일 이제 문제는 -이 파일을 오래된 파일로 착각하여 0 대신에 500 행 (예를 들어)을 읽는 것입니다.
그래서이 문제를 해결하기위한 방법을 찾고 싶습니다. 여기에 몇 가지 지침이 있습니다. 아이 노드가 아닌 다른
어느 다른 1 대 1 대응을 : 당신이 나를 도울 수 있도록 수 - 나에 대해 생각했다.
파일을 표시 할 수있는 기능. chmod + x를 사용하여 파일을 기존 파일로 표시하고 이러한 사용 권한이없는 새 파일에 대해 생각했습니다. 새 파일임을 알 수 있습니다. 그러나 누군가 수동으로 사용 권한을 변경하면 내 파일을 혼동하게됩니다. 프로그램. 그래서 다른 방법으로 표를하면.
파일을 삭제할 때 삭제되는 파일에 대한 소프트 링크를 만드는 방법을 생각했습니다. 그러면 어떤 파일이 삭제되었는지 알 수 있습니다.
은 "만든 날짜"
마음에 오는 모든 아이디어를 얻을 수있는 방법 -만큼 그들은 것 등 모두가 좋은 것 - 어쩌면 일부 영리한 방법으로 타임 스탬프에 atime, ctime이,에 mtime을 사용하여 어떤 파일이 새로운 것인지 또는 파일과 일대일 대응을 만드는 아이디어를 알려줍니다.