скрипт 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
...

Таких существующих log.1файлов около 1000. Я хотел бы переименовать их все, ***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/*/

Поэтому, если есть некоторые каталоги, которые вы хотите пропустить /var/log/remote/, вам следует использовать -not -path <path>опцию после find (см.этот ответ в другой теме для примера)

Связанный контент