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の違い

推薦する

HTMLテーブルではテーブルの外側の境界線のみが表示されます

質問があります。Dreamweaver で、3 行 1 列のログイン フォーム (ログイン、登録、パ...

HTML チュートリアル: 画像のサイズ、配置、間隔、境界線の属性を変更する方法

画像タグ: <img> ページに画像を挿入するには、「src」属性を持つ「img」タグを...

MySQL の Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する思い出させるMySQLコンテナコマンドを...

MySQL を使用した分散ロックの実装

導入分散システムでは、分散ロックは最も基本的なツール クラスです。たとえば、支払い機能を備えた 2 ...

Web コンテンツ ページを作成するための 9 つの実用的なヒント

コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...

TomcatコンポーネントはWebサーバーのアーキテクチャの進化を示しています

1. tomcat とは誰ですか? 2. Tomcat は何ができますか? Tomcat は Web...

ECMAScriptにおけるプリミティブ値と参照値の詳しい説明

目次序文動的プロパティとは何ですか?値のコピー値の種類を決定する要約する序文これは JavaScri...

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

クロスオリジン画像リソース権限(CORS 対応画像)

HTML 仕様書では、画像の crossorigin 属性が導入されています。適切なヘッダー情報 ...

Nginx でアクセス頻度、ダウンロード速度、同時接続数を制限する方法

1. アクセス頻度、同時接続、ダウンロード速度を制限するために使用されるモジュールと命令の概要ngx...

既存のMySQLデータベースの文字セットを統一する方法

序文データベースでは、一部のデータ テーブルとデータは latin1 であり、一部のデータ テーブル...

Vue3 における ref と reactive の詳細な説明と拡張

目次1. 参照と反応1. 反応的2.参照2. shallowRef と shallowReactiv...

CSS3セレクターの新機能の実装

目次基本的なセレクタ拡張属性セレクタ疑似クラスと疑似要素セレクター基本的なセレクタ拡張1. 子要素セ...

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

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...