GNU/Linux >> Linux の 問題 >  >> Ubuntu

ログが大きくなりすぎるのを防ぐ方法は?

いくつかのPythonスクリプトを実行するcronジョブがあり、それらは大量のログファイルを生成します。それらが大きくなるのを防ぐにはどうすればよいですか?特定のサイズに達したときにファイルを削除すると完璧です。数日ごとに、ファイルは現在50MBですが、はるかに大きくなり、低速のインターネット接続でバグをダウンロードして分析するのに永遠に時間がかかります。スクリプトがどこで失敗したかを確認するために、最後の1000行だけを確認したいのです。

これを行うために何かをコーディングできることは知っていますが、Linuxに私が知らない何かがあるかどうか疑問に思っていました。大きなログファイルが一般的な問題だと思います。ありがとう。

承認された回答:

通常は、関心のあるアクティビティのみをログに記録し、可能であればプログラムの冗長性を低くするように構成する必要があります。

提案されているように、 logrotateを使用する ログファイルを処理する通常の方法です。ただし、コンテンツを/etc/logrotate.confに追加する代わりに /etc/logrotate.d/に独自のジョブを追加する必要があります 、そうでない場合は、リリースのアップグレード中に構成ファイルのより多くの差分を調べる必要があります。

これが私がphpスクリプト用に作成した例です:

/var/log/some-php-app/*.log {
        daily
        rotate 10
        delaycompress
        compress
        notifempty
        missingok
}
  • /var/log/some-php-app/*.log –は、ログファイルが配置されているパスとその名前です。ご覧のとおり、ワイルドカードを使用して、ルールを複数のログファイルに適用することもできます。
  • 毎日 –ログファイルを毎日ローテーションします。代替案:毎時、毎週、毎月、毎年、maxsize、maxage
  • 回転 カウント –ファイルは、メールディレクティブで指定されたアドレスに削除またはメール送信される前に、カウント回数ローテーションされます。
  • delaycompress –前のログファイルの圧縮を次のローテーションサイクルに延期します。
  • 圧縮 –古いバージョンのログファイルをgzipで圧縮します。 zlessを使用できます lessの代わりに ファイルを表示します。
  • 通知なし –ログが空の場合、ログをローテーションしません。
  • missingok –ログファイルがない場合、エラーメッセージを発行せずに次のローテーションジョブに進みます。

その他のオプションについては、logrotateのマンページをご覧ください。


Ubuntu
  1. アクセシビリティの微調整:入力時に誤って選択したテキストが置き換えられないようにするにはどうすればよいですか?

  2. / var / log / account / pacctが大きくなりすぎていますが、Ckpacctはどこにありますか(Cicle / gzipに)?

  3. VimからPDFに印刷する方法は?

  1. ファイルから変数を読み取る方法は?

  2. Ubuntuで.isoから.imgファイルを作成する方法は?

  3. IsoファイルからUbuntuをインストールする方法は?

  1. 非管理者アカウントから管理者アカウントにログインする方法は?

  2. インストールされたアプリから.clickファイルを作成する方法は?

  3. Linuxでログファイルを空にする方法