欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux Nginx 日志腳本

 更新時(shí)間:2013年11月29日 17:39:27   作者:  
這篇文章主要介紹了nginx日志切割腳本、nginx日志分析腳本等,需要的朋友可以參考下

任務(wù)計(jì)劃
crontab -l
1 15 * * * /home/dongnan/sh/split.sh >> /home/dongnan/sh/cron.log 2>&

nginx 日志
ls /var/log/nginx/
20130730-access.log.gz  20130801-access.log.gz  20130803-access.log.gz
20130730-error.log.gz   20130801-error.log.gz   20130803-error.log.gz
20130731-access.log.gz  20130802-access.log.gz access.log
20130731-error.log.gz   20130802-error.log.gz   error.log

shell 腳本
cat split.sh

復(fù)制代碼 代碼如下:

#!/bin/bash
#script_name:nginx_log.sh
#description:nginx-log deleted/rotate/compress
#last_update:20130725 by zongming

#Nginx
#Signal Action
#TERM, INT Terminate the server immediately
#QUIT Stop the server
#HUP Configuration changes, start new workers, graceful stop of old workers
#USR1 Reopen log files
#USR2 Upgrade the server executable
#WINCH Graceful Stop (parent process advise the children to exit)

  
#variables
log_dir=/var/log/nginx/
log_date=$(date +"%Y%m%d")
nginx_pid=/var/run/nginx.pid
keep_days=30

#old_log
find "$log_dir" -name "*\.log.gz" -type f -mtime +"${keep_days}" -exec rm -rf {} \;

#rename_log
for log_name in `ls "$log_dir" | awk '/.log$/'`;do
    if [ -e "${log_dir}${log_date}-${log_name}" ];then
        echo "${log_dir}${log_date}-${log_name} Already exists" && continue
    else
        /bin/mv "${log_dir}${log_name}" "${log_dir}${log_date}-${log_name}"
        /bin/gzip "${log_dir}${log_date}-${log_name}"
    fi
done

#new_log
/bin/kill -USR1 $(cat $nginx_pid) && /bin/sleep 1

nginx日志切割腳本:

vi /root/cutlog.sh

復(fù)制代碼 代碼如下:

#!/bin/bash
I=`ps aux | grep nginx | grep root | grep -v 'grep nginx' | awk '{print $14}'`    #查找nginx進(jìn)程
if [ $I == /usr/local/nginx/sbin/nginx ];then
ACCLOG=`cat /usr/local/nginx/conf/nginx.conf | grep  ' access_log' | awk '{print $2}'`  #如果nginx進(jìn)程在,就找到配置文件,讀取accesslog路徑
ERRLOG=`cat /usr/local/nginx/conf/nginx.conf| grep  ^error  | awk '{print $2}'| cut  -d";" -f1`  #錯(cuò)誤日志的路徑
ls $ACCLOG     #查看是否有此文件
if [ $? -eq 0 ];then    #如果有
mv $ACCLOG  $ACCLOG.`date -d "-1 day" +%F`  #重命名當(dāng)前日志
mv $ERRLOG $ERRLOG.`date -d "-1 day" +%F`
touch $ACCLOG    #創(chuàng)建空日志
touch $ERRLOG
chown nginx:root  $ACCLOG   #修改屬主
chown nginx:root  $ERRLOG
[ -f /usr/local/nginx/logs/nginx.pid ] && kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`     #判斷進(jìn)程,并重新加載(這里的kill -USR1會(huì)使nginx將新產(chǎn)生的日志寫到剛創(chuàng)建的新日志里面。)
/mnt/logs/checklog.sh $ACCLOG.`date "-1 day" +%F` #這個(gè)是日志分析腳本
gzip $ACCLOG.`date -d "-1 day" +%F`  #壓縮日志
gzip $ERRLOG.`date -d "-1 day" +%F`

mv  $ACCLOG.`date -d "-10 day" +%F`.*  /mnt/history.nginx.log/   #將10天前的老日志清理到其他地方,(你們?nèi)绻雱h除的可以自己改成刪除)
mv  $ERRLOG.`date -d "-10 day" +%F`.*  /mnt/history.nginx.log/
fi
fi

nginx日志分析腳本:

vi /mnt/logs/checklog.sh

復(fù)制代碼 代碼如下:

#!/bin/bash
echo -e  "####################`date +%F`" >> /mnt/logs/400.txt
echo -e  "####################`date +%F`" >> /mnt/logs/URL.txt
echo -e  "####################`date +%F`" >> /mnt/logs/IP.txt
cat $1 | wc -l >> /mnt/logs/IP.txt   #分析IP
cat  $1  | awk -F'"'  '{print $3}' | awk '{print $1}' | sort | uniq -c| sort -rn >  /mnt/logs/CODE.txt   #分析返回值
cat $1 |  awk   '{print $1}' |  sort | uniq -c| sort -rn | head -n20  >> /mnt/logs/IP.txt 
N=`cat /mnt/logs/CODE.txt | wc -l`
for I in $(seq 1 $N)
do
M=`head -n$I /mnt/logs/CODE.txt | tail -n1 | awk '{print $2}'`
if [ $M -ge 400 ]
then

echo "#####FIND $M###############">>/mnt/logs/400.txt   #分析錯(cuò)誤請(qǐng)求
cat $1 | grep "\" $M "  | grep -v ' "-" "-" - ' | sort | awk '{print $1 $2 $3 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21}' | sort | uniq -c  | sort -rn  | head -n5 >> /mnt/logs/400.txt
fi
done
cat  $1 | grep -v ' "-" "-" - ' | awk -F'T' '{print $2}' | awk -F'?' '{print $1}' | sort |awk '{print $1}' | sed  's/\(\/review\/file\/download\/\).*/\1/g'   | sort | uniq -c | sort -rn | head -n20 >> /mnt/logs/URL.txt

相關(guān)文章

  • Linux rpm命令參數(shù)使用大全(經(jīng)典)

    Linux rpm命令參數(shù)使用大全(經(jīng)典)

    RPM是RedHat Package Manager(RedHat軟件包管理工具)類似Windows里面的“添加/刪除程序”,本篇文章給大家介紹linux rpm命令參數(shù)使用大全,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • Linux Shell 生成隨機(jī)數(shù)和隨機(jī)字符串的方法示例

    Linux Shell 生成隨機(jī)數(shù)和隨機(jī)字符串的方法示例

    這篇文章主要介紹了Linux Shell 生成隨機(jī)數(shù)和隨機(jī)字符串的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • linux下部署kodexplorer的方法

    linux下部署kodexplorer的方法

    下面小編就為大家?guī)硪黄猯inux下部署kodexplorer的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法示例

    shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法示例

    這篇文章主要給大家介紹了關(guān)于shell腳本學(xué)習(xí)之調(diào)用腳本將文件打包zip的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • UNIX sh(Bourne Shell)腳本里面使用數(shù)組的兩種方法

    UNIX sh(Bourne Shell)腳本里面使用數(shù)組的兩種方法

    這篇文章主要介紹了UNIX sh(Bourne Shell)腳本里面使用數(shù)組的兩種方法 ,需要的朋友可以參考下
    2016-12-12
  • Linux下Shell編程快捷鍵大全(日常整理)

    Linux下Shell編程快捷鍵大全(日常整理)

    有時(shí)候,我們需要在 Bash 中重復(fù)執(zhí)行先前的命令。所以學(xué)習(xí)shell編程快捷鍵對(duì)工作非常有幫助,下面由腳本之家小編給大家介紹Linux下Shell編程快捷鍵大全,需要的朋友參考下吧
    2016-03-03
  • 一文詳解Linux權(quán)限的相關(guān)知識(shí)

    一文詳解Linux權(quán)限的相關(guān)知識(shí)

    Linux權(quán)限是用來管理文件和目錄訪問權(quán)限的機(jī)制,每個(gè)文件和目錄都有一個(gè)所有者和一個(gè)所屬組,同時(shí)也有針對(duì)所有者、所屬組和其他用戶的權(quán)限設(shè)置,本篇文章將講授Linux的權(quán)限相關(guān)的知識(shí),需要的朋友可以參考下
    2023-09-09
  • Shell中變量作用域的介紹與使用命令

    Shell中變量作用域的介紹與使用命令

    作用域是我們?cè)谌粘W(xué)習(xí)或者工作中經(jīng)常會(huì)遇到的一個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于Shell中變量作用域的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例

    shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例

    這篇文章主要介紹了shell基礎(chǔ)學(xué)習(xí)中的字符串操作、for循環(huán)語句示例
    2014-04-04
  • Linux文件查找和解壓縮命令詳解

    Linux文件查找和解壓縮命令詳解

    這篇文章主要介紹了Linux文件查找和解壓縮命令,文件搜索查找包括按照名字搜索,按照文件所屬`主用戶`搜索,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-02-02

最新評(píng)論