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/*/

因此,如果您想跳过某些目录/var/log/remote/,则应该使用-not -path <path>find 之后的选项(请参阅这个答案在另一个线程中作为示例

相关内容