Linux でログファイルを定期的に削除する方法は何ですか?

Linuxシステムでは、logrotateツールを使用して定期的にログファイルを削除することができます。

  1. 最初に、システムにlogrotateツールがインストールされているかを確認してください。以下のコマンドを使用してインストールされているかどうかを確認できます:
  2. ログローテート –version
  3. インストールがされていない場合、logrotateを以下のコマンドでインストールすることができます。
  4. ログローテートをインストールしてください。
  5. 新しいlogrotateの設定ファイルを作成してください。viやnanoなどのテキストエディタを使用できます。
  6. サーボイスルージャー /etc/logrotate.d/delete_logs
  7. 設定ファイル内で、削除する予定のログファイルを指定することができます。以下はサンプル設定ファイルの内容です:
  8. /var/log/example.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 root adm
    postrotate
    /etc/init.d/rsyslog restart
    endscript
    } を規定のオプションで設定します。
  9. 上記の例では、/var/log/example.log は削除すべきログファイルのパスです。他のオプションの設定ファイルの意味は次の通りです:
  10. 毎日:1日1回実行します。
  11. missingok: ログファイルが存在しない場合でも、次のステップを続行します。
  12. rotate 7:7つのログファイルを保持し、古いログファイルは削除されます。
  13. 旧いログファイルを圧縮してください。
  14. delaycompress:次のローテーションまで圧縮を遅延させる。
  15. notifempty: ログファイルが空の場合はローテーションを実行しない。
  16. 新しいログファイルを作成するときに、権限と所有者を設定します。
  17. postrotateとendscriptの間の部分は、ローテーション後に実行されるコマンドです。この例では、rsyslogサービスを再起動します。
  18. 必要に応じて適切な修正や調整を行うことができます。
  19. ファイルを保存して閉じてください。
  20. このコマンドを使用して、logrotateを手動で実行することができます:
  21. sudo logrotate -f /etc/logrotate.d/delete_logs を実行してください。
  22. すべてが正常な場合、古いログファイルが削除されるでしょう。
  23. 最後に、logrotateを定期的に実行するためにcron定時タスクを使用できます。/etc/crontabファイルを編集し、以下の行を追加してください。
  24. 毎日、rootユーザーが/etc/logrotate.d/delete_logsを強制的にローテートする
  25. これにより、logrotateは毎日深夜に自動的に実行されます。

logrotate はログファイルを完全に削除せず、代わりにローテーションや圧縮を行います。ログファイルを完全に削除したい場合は、postrotate 部分に削除コマンドを追加することができます。例えば:

postrotate
    rm /var/log/example.log.*
endscript

/var/log/example.log.で始まるすべてのファイルは、ローテーション後に削除されます。

bannerAds