로깅 정보를 지속적으로 로그 파일에 쓰는 리눅스 응용 프로그램이 있습니다. /var/log/application.log
. 응용 프로그램이 파일을 자동으로 회전시키지 않기 때문에이 로그 파일은 몇 주 안에 기가 바이트 크기에 도달 할 수 있으므로이 파일을 올바르게 회전 할 수 있기를 원합니다
내 주요 관심사는 응용 프로그램에서 항상 열린 파일을 회전하려면 아마도 다음을 수행해야한다는 것입니다.
파일을 회전 된 형태로 이동
/var/log/application.log -> /var/log/application.log.2013-01-28
빈을 만듭니다
/var/log/application.log
. Obs : 이 시점에서 신청 절차는 여전히/var/log/application.log.2013-01-28
응용 프로그램 프로세스의 파일 디스크립터를 다시 가리 키도록 변경하십시오.
/var/log/application.log
내가 맞습니까? 그렇다면 어떻게해야합니까? (주로 파일 디스크립터 부분 변경)
내가 아닌 경우 올바른 방법은 무엇이며 어떻게해야합니까?
파일을 지우거나 회전해야합니까?
—
ewwhite
어떤 응용 프로그램? 응용 프로그램은이를 제대로 지원하기 위해 지원을 제공해야합니다. (그렇지 않으면 프로세스에 첨부하고 이전 파일
—
David Schwartz
dup2
위에 새 설명자를 추가 한 다음 새 설명자를 닫습니다.)
흥미로운 awarach Schwartz. 나는 그것이 실제로 작동하는 것을 알고 호기심을 가지고 놀 것입니다. 어쨌든 응용 프로그램은 집안에 있으며 더 일반적인 솔루션을 찾고 있습니다. 나는 kormoc의 답변 btw를 좋아합니다
—
Bruno
@ewwhite 회전해야하는데 로그 데이터를 잃을 여유가 없습니다
—
Bruno Polaco