의 출력을 프로그램을 실행 중일 때 error_log
이라는 파일로 리디렉션하려고합니다. myprogram.sh
실행 지속적으로 데이터를 생성하고 지금은 시간 당이 파일을 회전 logrotate
을 사용하고 /var/log/httpd/error_log
프로그램 출력을 회전 파일로 리디렉션
myprogram.sh >> /var/log/httpd/error_log
에 쓰는 경우
명령 나는이 같은 모습을 사용하고 있습니다. logrotate
에 create
명령을 사용하여 원래 파일의 이름을 바꾸고 새 파일을 만듭니다. logrotate
설정 여기
/var/log/httpd/error_log {
# copytruncate
create
rotate 4
dateext
missingok
ifempty
.
.
.
}
처럼 보이지만 리디렉션이 실패합니다. 내가 원하는 myprogram.sh
가 새로 생성 된 error_log
파일에 분명히, 그것은 logrotate에 의해 회전에 관계없이 error_log
파일에 데이터를 작성하는 것입니다
만드는 방법 어떤 생각 파일 이름 및 하지설명에 따라 재 작업?
또는
bash는 그것을하는 다른 방법은? 나는 (myprogram.sh
을 수정없이) 문제, 하나 개의 솔루션을 이해하면
나는이 문제를 이해하지 못한다.출력 리디렉션을 수행 할 때 설명 자이 아니라 파일 이름이 사용됩니다. 스크립트를 보여줄 수 있습니까? – Barmar
예, 사용했을 때'logrotate' 명령 전체를 보여줄 수 있습니까? –
왜 copytruncate를 사용하지 않으므로 myprogram.sh는 이전 로그 파일에 (appending)을 계속 쓸 수 있습니다. create (mv와 비슷하다)에 문제가 없을 것이다. –