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データ損失の原因と解決策

目次序文問題の説明原因分析拡大する総括する序文最近、データの欠落やデータの損失に関するフィードバック...

MySQL ベストプラクティス: パーティションテーブルの基本タイプ

MySQL パーティションテーブルの概要MySQL の人気が高まるにつれて、MySQL に保存される...

MacでのMySQL初期化パスワード操作

Macでデータベースを操作する際に個人が遭遇するデータベース起動の問題の簡単な記録1. Apple-...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

CentOS 7.3 で Nginx 仮想ホストを設定する方法

実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...

Navicat For MySQL の使い方に関する簡単なチュートリアル

推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...

Springboot プロジェクトに動的にパラメータを渡すための Docker の実装方法

背景最近、Docker 初心者の友人から、毎回プロジェクト構成ファイルにハードコーディングしてサービ...

VueはPCで写真をアップロードする機能を実現

この記事の例では、PC上で写真アップロード機能を実現するためのVueの具体的なコードを参考までに共有...

中国の専門ではない:文化の違いの中でのウェブ開発

Web デザインと開発は大変な作業なので、少数の人だけを対象に設計しないでください。これは外国人が...

Linux で XFS パーティション形式のルート ディレクトリを縮小する方法

目次序文システム環境現在のシステムパーティションレイアウトデータのバックアップレスキューモードに入る...

Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター

1. インストールターミネーターの最大の特徴は、1つのウィンドウで複数のターミナルを開くことができる...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

Linux 仮想メモリ設定のチュートリアルと実践

仮想メモリとは何ですか?まずはWikipediaからの紹介文をそのまま引用します。仮想メモリは、コン...

Ubuntuで顔認識ログインを実装するための完全な手順

1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...

MySQLでSQL文がどのように実行されるかの詳細な説明

概要最近MySQL関連の知識を勉強し始めました。学んだ知識ポイントと自分の理解を元に整理して共有しま...