私の状況は、php スクリプトがメールを送信した後、いつでも postfix のメールログをローテーションしたいということです。
ログ ファイルを分析して、別の送信者に別のエラー メッセージを送信し、その後、ローテーションされたログ ファイルを削除して、元のメールログが大きくなりすぎないようにします。
私の Freebsd バージョンは 8.0 リリースです。
システムのセットアップを難しくする追加のプログラム ツールをインストールする必要がない可能性はありますか。
前もって感謝します
2 に答える
あなたに役立つことができませんでしlogrotate
たか?これは、nixシステムでのログローテーションのためのかなり標準的なツールです。
私があなたの状況にあった場合、私はlogrotate
ログでやりたいことを行うためにカスタムスクリプトを使用して作成します。ニーズを正確に表現していないため、正確な答えを出すのは困難です。
そのためにPHPを使用したいという場合は、「Webサーバー内から」ではなく、「システムスクリプト言語として」という意味であることを願っています。たとえば、ApachePHPモジュールにシステムログを操作させたくはありません。実際には、彼らが手の届かないところにいることを確認します。
さらに、代わりにServerFaultまたはUNIX/Linuxの質問かもしれないと思います。
FreeBSDは、ログローテーションにnewsyslog(8)を使用します。これは/etc/newsyslog.confによって構成され、デフォルトでは/ var / log/maillogの毎日のローテーションを使用します。
本当に必要な場合は、を呼び出すことでスケジュールされていないローテーションをトリガーできますnewsyslog -F /var/log/maillog
。ただし、IMHOは、a)追加のコードを必要とせず、b)構成がシステムの状態を文書化することを意味するため、newsyslog.confのポリシーを変更せずに変更することをお勧めします。