script bash - renomeação da saída logrotate

script bash - renomeação da saída logrotate

Ao executar logrotatemostra o seguinte:

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
...

Existem cerca de 1000 desses log.1arquivos existentes. Gostaria de renomear todos eles para ***log.2 que possa executar novamente logrotatecom êxito.

Como eu faço isso?

Responder1

Se você está apenas procurando uma solução única, isso deve resolver:

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

No entanto, observe que isso renomearáTODOS *.log.1arquivos em/var/log/remote/*/

Portanto, se houver alguns diretórios que você deseja pular /var/log/remote/, você deve usar a -not -path <path>opção após localizar (vejaesta resposta em outro tópico para um exemplo)

informação relacionada