Nginx のタイムドログカットの詳細な説明

Nginx のタイムドログカットの詳細な説明

序文

デフォルトでは、Nginx ログはファイルに書き込まれます。各ドメインのログを区別するために、通常は別々に保存します。それでも、ファイルはどんどん大きくなり、表示や分析が非常に不便になります。通常、統計は毎日行われます。Nginx ログを日付ごとに分ける方法について説明します。

構成

スクリプトの作成

#!/bin/bash
#LOGS_PATH=/usr/local/nginx/logs を初期化します
昨日=$(日付 -d "昨日" +%Y%m%d)

#日ごとにログを切り取る mv ${LOGS_PATH}/bbs.52itstyle.com.access.log ${LOGS_PATH}/bbs.52itstyle.com.access_${YESTERDAY}.log
mv ${LOGS_PATH}/blog.52itstyle.com.access.log ${LOGS_PATH}/blog.52itstyle.com.access_${YESTERDAY}.log

# ログ ファイルを再度開くために nginx メイン プロセスに USR1 シグナルを送信します。そうしないと、mv 後にファイルにデータが書き込まれ続けます。その理由は、Linux システムではカーネルがファイル記述子に基づいてファイルを検索するためです。これを行わないと、ログのローテーションが失敗します。
kill -USR1 `ps axu | grep "nginx: マスタープロセス" | grep -v grep | awk '{print $2}'`

#7日前のログを削除します cd ${LOGS_PATH}
検索 . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f

終了 0

タスクの書き込み

#コマンドcrontab -eを実行
#ファイルに書き込んで保存 0 0 * * * /home/scripts/cut_del_nginx_logs.sh

クローンタブ

Crond は、Linux で定期的に特定のタスクを実行したり、特定のイベントが処理されるのを待ったりするために使用されるデーモン プロセスです。これは、Windows のスケジュールされたタスクに似ています。オペレーティング システムをインストールすると、このサービス ツールがデフォルトでインストールされ、crond プロセスが自動的に開始されます。crond プロセスは、実行するタスクがあるかどうかを 1 分ごとに定期的にチェックします。実行するタスクがある場合、タスクは自動的に実行されます。 Linux でのタスク スケジューリングは、システム タスク スケジューリングとユーザー タスク スケジューリングの 2 つのカテゴリに分けられます。

システム タスクのスケジュール: キャッシュ データをハード ディスクに書き込む、ログをクリーンアップするなど、システムが定期的に実行する必要がある作業。 /etc ディレクトリには、システム タスクのスケジュール設定用の構成ファイルである crontab ファイルがあります。

Crontab サービスのインストール

crontab をインストールします:

yum crontabs をインストール

サービス操作手順:

service crond start //サービスを開始します service crond stop //サービスを終了します service crond restart //サービスを再開します service crond reload //設定を再読み込みします

crontab サービスのステータスを確認します。

サービス crond ステータス

crontab サービスを手動で開始します。

サービスcrond開始

次のコマンドを実行して、crontab サービスが起動時に開始するように設定されているかどうかを確認します。

ntsysv

自動起動を追加:

chkconfig –level 35 crond オン

crontab 形式の説明

ユーザーが作成した crontab ファイルでは、各行がタスクを表し、各行の各フィールドが設定を表します。その形式は 6 つのフィールドに分かれています。最初の 5 つのセグメントは時間設定セグメントで、6 番目のセグメントは実行するコマンド セグメントです。形式は次のとおりです。

上記の各フィールドでは、次の特殊文字も使用できます。

  • アスタリスク (*): すべての可能な値を表します。たとえば、day フィールドがアスタリスクの場合、他のフィールドの制約が満たされた後、コマンド操作が毎日実行されることを意味します。
  • カンマ(,):カンマで区切られた値のリスト範囲を指定できます。例:"1,2,5,7,8,9"
  • 中央バー (-): 整数間の中央バーを使用して整数の範囲を表すことができます。たとえば、「2-6」は「2,3,4,5,6」を意味します。
  • スラッシュ (/): スラッシュを使用して時間間隔の頻度を指定できます。たとえば、「0-23/2」は 2 時間ごとに実行されることを意味します。同時に、スラッシュはアスタリスクと一緒に使用できます。たとえば、分フィールドで */10 を使用すると、10 分ごとに実行されることを意味します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx ログの日付別カット(日別カット)の詳しい説明
  • nginx ログカットシェルスクリプト
  • Nginxのログ設定とログカットの詳しい説明
  • Nginx ログモジュールとログタイミングカット方法
  • Linux システムで nginx ログを毎日カットするスクリプトの書き方
  • nginx ログカットスクリプトの共有
  • nginx ログカット実装の詳細な説明
  • Logrotate ログセグメンテーションを使用した Nginx の詳細なプロセス

<<:  Vueフィルターの使い方

>>:  MySQLデータベースホスト127.0.0.1とlocalhostの違い

推薦する

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.12のインストールと設定方法を記録してみんなで共有します。 1. インストール1...

よくある HTML タグの記述エラー

HTML Police がコードを調べて意味のないタグをすべて見つけ出すので、注意を払う必要がありま...

Linux のファイル圧縮とパッケージ化の概要

1. 圧縮と包装の概要一般的な圧縮ファイルウィンドウズ .rar .zip .7z Linux .z...

Vue プロジェクトで mock を使用する方法をご存知ですか?

目次最初のステップ: 2 番目のステップは、request.js で関連する構成を行うことです。re...

Dockerはnextcloudを使用してプライベートBaiduクラウドディスクを構築します

突然、ドキュメントの保存と共同作業のためのプライベート サービスを構築する必要がありました。多くの場...

Tomcat が IDEA のコンソールで文字化けを起こし、IDEA エンコーディングを UTF-8 に設定する方法

1. まず、TomcatログのエンコーディングとIdeaログ表示コンソールのエンコーディングを区別す...

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...

ボタントリガーイベントを使用して背景色の点滅効果を実現します

背景色の点滅効果を実現するには、次のコードを <body> 領域に追加するだけです。コー...

Linux スケジュールタスクの関連操作の概要

皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...

Linux MySQL ルートパスワードを忘れた場合の解決方法

MySQL データベースを使用する際、何らかの理由で長期間 MySQL にログインしていない場合、ま...

MySQL データベースは XA 仕様をどのように実装しますか?

MySQL 一貫性ログMySQL データベースの電源が切れた場合、コミットされていないトランザクシ...

JavaScript 配列を走査する 5 つの方法

目次1. forループ: 基本的でシンプル2. forEach() メソッド: コールバック関数の使...

opensslを使用して無料の証明書を生成する方法

1: openssl とは何ですか? その機能は何ですか?適用シナリオは何ですか? Baidu 百科...

SQL ROW_NUMBER() および OVER() メソッドのケーススタディ

構文フォーマット: row_number() over(partition by grouping ...

mysql5.7.33 で誤って ibdata ファイルを削除した後にデータを回復する方法

目次1. シナリオの説明: 2. 事例のデモンストレーション: 2.1. MySQLの障害発生前にデ...