bash 스크립트 - logrotate 출력 이름 바꾸기

bash 스크립트 - logrotate 출력 이름 바꾸기

실행하면 logrotate다음과 같이 표시됩니다.

error: error creating output file /var/log/remote/172.29.202.29/contrail-vrouter-agent.log.1: File exists
error: error creating output file /var/log/remote/172.29.207.139/swift-object-server.log.1: File exists
...

이러한 기존 파일이 1000개 정도 있습니다 log.1. 성공적 ***log.2 으로 다시 실행할 수 있도록 모두 이름을 바꾸고 싶습니다 logrotate.

어떻게 해야 하나요?

답변1

일회성 수정을 찾고 있다면 다음과 같이 하면 됩니다.

find /var/log/remote/ -maxdepth 2 -type f -name *.log.1 | sed -e 's/log\.1/log\./g'  | xargs -i mv {}1 {}2

그러나 이 이름은 이름이 변경됩니다.모두 *.log.1파일/var/log/remote/*/

따라서 에서 건너뛰고 싶은 디렉터리가 있는 경우 find 다음에 옵션을 /var/log/remote/사용해야 합니다 (참조-not -path <path>예를 들어 다른 스레드의 이 답변)

관련 정보