ログファイルを1日に2回作成する必要があるという問題があります。 2回目に作成しようとすると、その名前のファイルが既に存在するため、作成されていないことが検出されます。したがって、2回目の実行が行われるときに、最初のログの名前をタイムスタンプで、おそらく "Previous"という文字列に変更したいとします。タイムスタンプと文字列でログの名前を変更する
これは私が気圧持っているものです。
renameLogs() { for x in $MY_FILE_PATH/logs/!Previous*$TIMESTAMP.log; do mv "$x" "$Previous{x%*.log}$(TIMESTAMP).log"; done
}
これはしかし、それは毎回実行されますん、それはすべてのログの名前を変更し、私は
などのログ名で終わるものをMyLog_240220120224-15434620120224-160148.log
私は何をsimp次のようになります:
IFログには前のAND TIMESTAMPが含まれていないかどうかをチェックし、PREVIOUS + TIMESTAMPでログの名前を変更します。私の知識が限られているので、助けてもらえますか?簡単な解決策は、あなたのために理にかなって名前を選ぶので、あなたのcmdが$MY_FILE_PATH/archive_logs/
は単なる例であると
mv "$x" $MY_FILE_PATH/archive_logs/"${x%*.log}$(date +%Y%m%d-%H%M%S).log"
になり、あなたの名前のログのアーカイブディレクトリを維持することです
おかげ
配布については、[logrotate](https://iain.cx/src/logrotate/)をチェックしてください。 –