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

推薦する

バックエンドデータを取得するためのVue Elementフロントエンドアプリケーション開発

目次概要1. バックエンドデータの取得と処理2. インターフェース表示処理概要前回のエッセイ「ステッ...

MySQL サブクエリとグループ化されたクエリ

目次概要サブクエリサブクエリの分類クエリの結果によるとサブクエリの位置で区別する選択後のサブクエリサ...

Baidu サイト検索が https をサポートしていない問題の解決策 (テスト済み)

最近、携帯電話で https が有効になりました。緑色のロックを取得するには、次の問題を解決する必要...

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...

JSはjQueryのappend関数を実装します

目次コードを見せてください効果をテストする効果追伸別のアプローチコードを見せてください HTMLEl...

JS 4つの楽しいハッカー背景効果コードを共有する

目次例1例2例3例4例1 <html> <ヘッド> <title>...

Vueはドラッグ可能なツリー構造図を実装します

目次Vue 再帰コンポーネントドラッグイベント最近、Vue を使用して、ドラッグ可能なツリー構造図と...

UniappはBaidu Voiceを使用して録音をテキストに変換する機能を実現

3日間さまざまな困難に遭遇した後、ようやくこの機能を実現しました。正常に実装できる方法を見つける前に...

IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

問題: IIS を通じて公開された Web サイトは F5 デバイスの背後に配置されています。透過的...

CSS で要素を垂直方向に中央揃えする 7 つの方法

【1】中央の要素の幅と高さを知る絶対値 + 負のマージンコードの実装 .wrapBox5{ 幅: 3...

CSS 線形グラデーション凹型長方形遷移効果の実装

この記事では、線形グラデーションの凹四角形の遷移効果の難しさやアイデアについて説明します。主に、凹四...

CSSアダプティブレイアウトは、サブ要素項目の全体的な中央揃えと内部項目の左揃えを実現します。

日常業務では、次のようなレイアウトに遭遇することがあります。親要素のフレーム (ブラウザのサイズに応...

Nodeはバックエンドの実装手順を素早く構築します

1. まず、node、express、express-generator をインストールします (4...

CSS画像結合技術(スプライト画像)の詳しい説明

CSS画像結合技術1. 画像のステッチ画像ステッチング技術は、個々の画像を収集する技術です。画像の多...

JavaScript の Set データ構造の詳細な説明

目次1. セットとは何か2. セットコンストラクタ2.1) 配列2.2) 文字列2.3) 議論2.4...