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

0

Ao executar logrotate , ele mostra 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
...

Há algo como 1000 desses arquivos exisiting log.1 . Gostaria de renomeá-los para ***log.2 para que eu possa executar logrotate com êxito.

Como faço isso?

    
por user307816 28.08.2018 / 11:14

1 resposta

0

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

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 renomeia TODOS *.log.1 arquivos em /var/log/remote/*/

Portanto, se houver alguns diretórios que você queira pular em /var/log/remote/ , use a opção -not -path <path> após a localização (consulte esta resposta em outro tópico para um exemplo )

    
por 28.08.2018 / 11:58