学而实习之 不亦乐乎

Linux shell 截取 Nginx 日志

2023-10-18 07:44:27

实例:截取10分钟 nginx 日志

#!/bin/sh
if [[ $(date +%H:%M:00) == "00:00:00" ]] ; then
    return
else
    MIN=$(date +%M)
    HOUR=$(date +%H)
    DAY=$(date +%d)
    MONTH=$(date +%m)
    YEAR=$(date +%Y)
    
    DT=$(date  +%Y%m%d)
    PATH="/data/$DT/"
    if [ ! -d "$PATH" ]; then 
         echo $PATH
         mkdir $PATH 
  
    if [[ $(date +%M) == "0"[0-9] ]] ; then
            MIN_NOW=60
            MIN_LAST=50
            temp=`expr $HOUR - 1`

            if [[ $temp = [0-9][0-9] ]] ; then
                    HOUR=$temp
            else
                    HOUR="0"$temp
            fi
    else
            MIN_NOW=$(date +%M)
            MIN_LAST=$(date -d "10 minutes ago" +%M)
    fi
    NOW=06:${MIN_NOW}:00
    LAST=06:${MIN_LAST}:00
    echo $NOW,$LAST
    cat /data/2013_09/19/vodlogCn_06.log | awk -v NOW=$NOW -v LAST=$LAST '{if($5>=LAST && $5<NOW) print $0}' > /data/2013_09/$DT/$HOUR$MIN_LAST.log
    echo "$HOUR$MIN_LAST > /data/2013_09/split.flag 
fi