シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計

一日のPV(ページビュー)をカウントする

cat access.log | sed -n /`date "+%d\/%b\/%Y"`/p |wc -l

ある日のPVを数える

cat access.log | sed -n '/20\/Sep\/2018/p' | wc -l

ログで最もアクセス数が多い上位10のIPアドレスを表示します

cat access.log.1 |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10

ログで1,000回以上の訪問がある上位10のIPアドレスを表示します

cat access.log.1 |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{if($1>1000) print $0 }' | head -n 10

2. curlはデータを送信する

curlを使用してGETリクエストを送信する

curl http://127.0.0.1:8080/login?admin&passwd=12345678

curlを使用してPOSTリクエストを送信する

curl -d "user=admin&passwd=12345678" http://127.0.0.1:8080/login

curlを使用してJSONデータを送信する

curl -H "Content-Type:application/json" -X POST -d '{"user": "admin", "passwd":"12345678"}' http://127.0.0.1:8000/login

curl を使用して動的パラメータ POST リクエストを送信する

curl -i -X ​​POST -H "'コンテンツタイプ':'application/json'" -d '{"ATime":"'$atime'","BTime":"'$btime'"}' $url
curl -i -X ​​POST -H "'Content-type':'application/json'" -d '{"ATime":"'${atime}'","BTime":"'{$btime}'"}' ${url}

3. シェルスクリプトの統計と送信

#!/bin/bash
log_path=/var/log/nginx/access.log
ドメイン="http://127.0.0.1:8080/data/count"
log_date = `日付 "+%d/%b/%Y"`
${log_date} をエコーし​​ます
total_visit=`cat ${log_path} | grep $log_date|wc -l`
curl -d "count=${total_visit}" ${domain}
$total_visit をエコーする

4. サーバーはそれを受け入れ、データベースに保存します。

@RequestMapping(値 = "/count")
  パブリック void count(文字列 count){
  //ビジネスコード}

要約する

上記は私が紹介したシェルスクリプトです。Nginx の access.log の PV を定期的にカウントし、API に送信してデータベースに保存します。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • シェルスクリプト nginx 自動化スクリプト
  • シェルスクリプトを使用して Nginx ログを分割するサンプルコード
  • Nginx キャッシュを一括クリアするシェル スクリプト
  • nginx ログカットシェルスクリプト
  • 一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

<<:  MySql 5.7.17 winx64 のインストールと設定に関する詳細なチュートリアル

>>:  ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する

推薦する

主要ブラウザとそのカーネルの紹介

トライデント コア: IE、MaxThon、TT、The World、360、Sogou Brows...

CSSスクロールバースタイル設定の実装

Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...

Linuxで権限が拒否された場合の解決策の詳細な説明

許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...

MySQLサーバーが消えたエラーの解決策

PHP で MySQL サーバーが消えた問題1. 背景以前、Codeigniter でコンソール コ...

Linux の wget コマンドの詳細な紹介

目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...

コマンドラインを使用してUbuntuのバージョンを検出する方法

方法1: lsb_releaseユーティリティを使用するlsb_release ユーティリティは、L...

マーキー要素は、スクロールするフォントや画像などの効果を実装します。

マーキー要素を使用すると、単純なフォント(画像など)のスライドやその他の効果を実現できます。コードを...

ウェブ画像形式としてPNG、JPG、GIFを選択して使用する方法

では、GIF、PNG、JPG のどの形式を候補形式として選択すればよいのでしょうか。また、どの画像形...

MySQL でのストアド プロシージャと関数の作成の詳細な説明

目次1. ストアドプロシージャ1.1. 基本構文1.2 実行権限を指定してストアドプロシージャを作成...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

VueはOSSを使用して画像や添付ファイルをアップロードします

OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

エコー後に要素編集フォームel-radioが選択できない問題を解決します

目次序文質問オンラインソリューション序文この記事の内容は私がこの業界に入ったときのメモを元にしている...

Centos に PHP7.4 と Nginx をインストールする方法

準備する1. 必要なインストールパッケージをダウンロードするhttps://www.php.net/...

Linux での mysql8.018 のインストールと設定のプロセスの詳細な説明

Windowsでのインストールの紹介:こちらもご覧ください –》WindowsでのMySQL 8.0...