使用Linux命令分析Nginx日誌檔案

2021-10-08 08:47:59 字數 2421 閱讀 2673

常見日誌格式:

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "

$http_referer" "$http_user_agent" "$http_x_forwarded_for"'

統計 ip 訪問次數:

# awk 'end' access.log
統計訪問量大於 100 次的 ip:

# awk 'end}' access.log
統計訪問 ip 次數並排序取前 top10:

# awk 'end' access.log
統計某時間段訪問最多的 ip:

# awk '$4>="[02/jan/2017:00:02:00" && $4<="[02/jan/2017:00:03:00"end' access.log
# date=$(date -d '-1 minute' +%d/%d/%y:%h:%m)

# awk -vdate=$date '$4~dateend' access.log

統計訪問最多的 10 個頁面:

# awk 'end』 access.log統計每個 url 數量和返回內容總大小:

# awk 'end' access.log
統計每個 ip 訪問狀態碼數量:

# awk 'end' access.log
統計訪問 ip 是 404 狀態次數:

# awk 'end' access.log
統計訪問url統計pv:

# awk '' /usr/local/nginx/logs/access.log|wc -l

# awk '' access.log|sort|uniq -c

根據訪問ip統計uv:

# awk '' /usr/local/nginx/logs/access.log|sort | uniq -c |wc -l
查詢訪問最頻繁的ip

# awk '' access.log|sort | uniq -c |sort -n -k 1 -r|head -n 50
查詢訪問最頻繁的url

# awk '' access.log|sort | uniq -c |sort -n -k 1 -r|head -n 50
nginx當前併發數

netstat -ant | grep :80 | awk '' | awk -f":" ''| sort | uniq -c | sort -r -n | awk 'beginend'
6、查詢時間段內的訪問日誌(404),統計出訪問ip及其訪問次數

tac access.log | grep "http/1.1\" 404" | awk -v st="15/oct/2018:14:58:47" -v et="15/oct/2018:14:59:47" '}' | awk '' | sort | uniq -c | sort -nr
其他命令

ls -l|awk 'begin !/^d/ end'                    //計算檔案大小
命令使用例項

如何使用service命令來管理nginx

如何使用service命令來管理nginx?如 service nginx start service nginx restart service nginx stop service nginx reload 如果要是使用 service 來管理nginx 需要把nginx 安裝成為乙個linux...

ubuntu使用apt get安裝nginx

nginx已經很火了,可centos和debian ubuntu都還沒把nginx加入倉庫中,每次都只能編譯安裝,不過官方最近提供了deb和rpm包了,只需要使用nginx的源就可以用包管理軟體直接安裝了,不過每次都先加key,再修改連線的版本還是有點繁瑣,所以打算寫個一鍵安裝指令碼來完成此工作。b...

docker 使用docker執行Nginx映象

在docker映象倉庫查詢nginx映象 建立nginx web資料夾,存放nginx的資訊 mkdir p opt nginx web 拷貝配置檔案到nginx web資料夾下 docker run name tmp nginx container d nginx 1.17 docker cp t...