nohup 출력을 다른 파일로 리디렉션

nohup 출력을 다른 파일로 리디렉션

서버에서 nohup을 사용하여 명령을 실행하고 있는데 출력 파일이 너무 커져서 프로세스를 완료하는 데 한 달이 더 걸릴 것으로 예상됩니다. 프로세스가 실행되는 동안 nohup 출력 파일을 변경하는 방법이 있습니까?

답변1

이것아이디어다른 질문에 대한 링크에 잘못된(그리고 받아들여지지 않은) 답변이 있더라도 댓글 중 하나에 제공된 내용은 일반적으로 수행된 내용입니다.

POSIX 셸에서 파일을 자르려면 다음을 사용하세요.

cat /dev/null > _name_of_file_

cp링크의 답변 중 하나가 제안하는 것과는 다릅니다 . 물론 이전 파일을 먼저 저장하려면 다른 파일 시스템이나 원격 위치에 복사하는 것이 좋습니다.

낮은 수준의 관점에서 차이점은 다음을 열고 싶다는 것입니다.기존의파일과 해당 inode를 삭제하고 자릅니다. 바라보다http://man7.org/linux/man-pages/man2/open.2.html그리고 O_TRUNC옵션.

특별한 상황에서 작동하는 또 다른 것입니다. 나는 때때로 /etc/logrotate.d파일이 어떻게 바뀌는지 확인하기 위해(또는 다른 적절한 로그 회전 프로그램을) 확인합니다. 일부 명령(예: apache2)에는 reload구성 파일을 로드하고 프로세스에서 로그 파일을 다시 열도록 하는 명령이 있습니다.

답변2

방금 출력을 다른 파일로 리디렉션할 수 있는 이 작고 깔끔한 유틸리티를 발견했는데 이제 모든 것이 잘 작동합니다. 이 유틸리티는 리디렉션이라고 하며 다음 위치에서 찾을 수 있습니다.https://github.com/jerome-pouiller/reredirect/

다음과 같은 간단한 명령: reredirect -m FILE PID작업을 완료하세요.

관련 정보