Nginx ログはファイルに書き込まれます。毎日 1 つの Nginx ログが必要です インターネット上で多くの方法を見ましたが、いずれもスクリプトを作成し、ログ ファイルを固定形式で切り出すというものでした。 Nginx は単独でログカットを行うことはできませんか?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
cron が実行されていることを確認します
設定ファイルを変更する
スケジュールされたタスクを確認する
logrotate 設定ファイルを /etc/logrotate.d/nginx に書き込みます
テスト構成
システム管理者のロギングのニーズは常に変化しています。Nginx は軽量であるため、ログ管理についてはまったく心配しません。
公式 LogRotation Wiki ページ
あなたも見つけたと思いますが、独自のスクリプトまたは logrotate を使用できます。
nginx ログ ファイルには回転機能がありません。これを処理しないと、ログ ファイルはどんどん大きくなっていきますが、幸いなことに、ログ ファイルを自動的にカットする nginx ログ カット スクリプトを作成できます。
最初のステップは、ログ ファイルの名前を変更することです。名前を変更した後に nginx がログ ファイルを見つけられず、ログが失われることを心配する必要はありません。元の名前でログ ファイルを再度開く前に、nginx はファイル名ではなくファイル記述子に基づいてファイルを見つけます。
2 番目のステップは、USR1 シグナルを nginx メインプロセスに送信することです。
シグナルを受信した後、nginx のメインプロセスは設定ファイルからログファイル名を読み取り、ログファイル (設定ファイル内のログ名で名前が付けられている) を再度開き、ワーカープロセスのユーザーを所有者として使用します。ログファイル。
ログ ファイルを再度開いた後、nginx メイン プロセスは同じ名前のログ ファイルを閉じ、新しく開いたログ ファイルを使用するようにワーカー プロセスに通知します。
ワーカー プロセスはすぐに新しいログ ファイルを開き、同じ名前のログ ファイルを閉じます。
その後、古いログファイルを処理できます。
nginxログの日付別自動切り出しスクリプトは以下の通りです
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/nginx.pid"
mv ${logs_path}access.log ${logs_path}access_$(date -d "昨日" +"%Y%m%d").log
USR1を殺すcat ${pid_path}
cat ${pid_path}
上記のスクリプト nginx_log.sh を保存するか、ここをクリックしてダウンロードします
crontabセットアップジョブ
0 0 * * * bash /usr/local/nginx/nginx_log.sh これにより、nginx ログの名前が毎日 0:00 の日付形式に変更され、今日の新しいログ ファイルが再生成されます。
詳細なソース参照: http://www.nginx.cn/255.html
最も簡単な方法は、設定ファイルで直接設定することです:
このメソッドは日付のないファイルを生成することが多いため、廃止されました
cron が実行されていることを確認します
リーリー設定ファイルを変更する
リーリースケジュールされたタスクを確認する
リーリーlogrotate 設定ファイルを /etc/logrotate.d/nginx に書き込みます
リーリーテスト構成
リーリーシステム管理者のロギングのニーズは常に変化しています。Nginx は軽量であるため、ログ管理についてはまったく心配しません。
公式 LogRotation Wiki ページ
あなたも見つけたと思いますが、独自のスクリプトまたは logrotate を使用できます。
nginx ログ ファイルには回転機能がありません。これを処理しないと、ログ ファイルはどんどん大きくなっていきますが、幸いなことに、ログ ファイルを自動的にカットする nginx ログ カット スクリプトを作成できます。
最初のステップは、ログ ファイルの名前を変更することです。名前を変更した後に nginx がログ ファイルを見つけられず、ログが失われることを心配する必要はありません。元の名前でログ ファイルを再度開く前に、nginx はファイル名ではなくファイル記述子に基づいてファイルを見つけます。
2 番目のステップは、USR1 シグナルを nginx メインプロセスに送信することです。
シグナルを受信した後、nginx のメインプロセスは設定ファイルからログファイル名を読み取り、ログファイル (設定ファイル内のログ名で名前が付けられている) を再度開き、ワーカープロセスのユーザーを所有者として使用します。ログファイル。
ログ ファイルを再度開いた後、nginx メイン プロセスは同じ名前のログ ファイルを閉じ、新しく開いたログ ファイルを使用するようにワーカー プロセスに通知します。
ワーカー プロセスはすぐに新しいログ ファイルを開き、同じ名前のログ ファイルを閉じます。
その後、古いログファイルを処理できます。
nginxログの日付別自動切り出しスクリプトは以下の通りです
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/nginx.pid"
mv ${logs_path}access.log ${logs_path}access_$(date -d "昨日" +"%Y%m%d").log
USR1を殺す
cat ${pid_path}
上記のスクリプト nginx_log.sh を保存するか、ここをクリックしてダウンロードします
crontabセットアップジョブ
0 0 * * * bash /usr/local/nginx/nginx_log.sh
これにより、nginx ログの名前が毎日 0:00 の日付形式に変更され、今日の新しいログ ファイルが再生成されます。
詳細なソース参照: http://www.nginx.cn/255.html
最も簡単な方法は、設定ファイルで直接設定することです:
リーリーこのメソッドは日付のないファイルを生成することが多いため、廃止されました