script bash - cambio de nombre de salida de logrotate

script bash - cambio de nombre de salida de logrotate

Al ejecutar logrotatemuestra lo siguiente:

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

Hay alrededor de 1000 de estos log.1archivos existentes. Me gustaría cambiarles el nombre a todos ***log.2 para poder volver a ejecutarlos logrotatecorrectamente.

¿Cómo hago esto?

Respuesta1

Si solo está buscando una solución única, esto debería funcionar:

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

Sin embargo, tenga en cuenta que esto cambiará el nombreTODO *.log.1archivos en/var/log/remote/*/

Entonces, si hay algunos directorios que desea omitir /var/log/remote/, debe usar la -not -path <path>opción después de buscar (consulteesta respuesta en otro hilo para un ejemplo)

información relacionada