lsof의 대용량(삭제된) 파일에 관심을 가져야 합니까? [복사]

lsof의 대용량(삭제된) 파일에 관심을 가져야 합니까? [복사]

/opt우리는 마운트의 일부 공간을 정리하는 작업을 진행해 왔습니다 . 공간 소비의 가장 큰 원인은 우리가 실행하는 일부 프로세스에 대한 로그 파일입니다(프로세스당 약 2~12GB).

우리는 그것들을 잘라서 정리합니다. 그러나 이는 우리의 출력을 왜곡하는 것 같습니다 df -H.

/dev/mapper/Sys-opt     76G    72G      0 100% /opt

이 디렉토리에서 실행하면 du -sh *크기가 합산되지 않습니다. 를 실행하는 동안 삭제한 파일 중 상당수가 마지막에 lsof | grep log여전히 나타나는 것을 발견했습니다 .(deleted)

내 질문은 (a) 내가 이것에 관심을 가져야 하는가이다. (b) df -H상자/이러한 프로세스를 다시 시작하지 않고 정상으로 돌아갈 수 있는 방법이 있습니까 ? 프로세스를 다시 시작하면 문제가 해결됩니까?(최근에 다시 시작된 것으로 알고 있는 프로세스의 동일한 로그에 여러 항목이 표시됩니다.)

답변1

Unix는 참조 카운팅을 사용하여 파일이 사용 중인지 또는 데이터를 삭제/재사용할 수 있는지 확인합니다.

열린 파일 핸들은 참조로 간주되므로 닫힐 때까지 공간이 채워집니다. 열린 파일 핸들을 사용하여 프로세스를 다시 시작하면 파일 핸들이 닫히고 디렉터리 구조에서 제거된 경우 참조 횟수가 0으로 떨어지면 사라집니다.

그렇습니다. 프로세스를 다시 시작하면 파일이 사라집니다.

이는 데몬의 로깅이 너무 장황할 때 발생할 수 있습니다. 선의의 누군가가 일부 정리를 했음에도 불구하고 여전히 로그 파일에 쓰고 있는 중입니다.

관련 정보