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

これらの既存のファイルは約1,000個です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/*/

したがって、一部のディレクトリをスキップするには、findの後にオプションを使用する/var/log/remote/必要があります(参照-not -path <path>この回答は、たとえば別のスレッドにあります。)

おすすめ記事