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 之後的選項(請參閱這個答案在另一個線程中作為示例

相關內容