HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: //var/log/nginx/last7
#!/bin/bash

############################
# CONFIG
############################
NGINX_LOG_DIR="/var/log/nginx"
OUTPUT_DIR="/home/ubuntu"
DAYS=7

############################
# INPUT CHECK
############################
DOMAIN="$1"

if [[ -z "$DOMAIN" ]]; then
    echo "Usage: $0 <domain_name>"
    echo "Example: $0 mentoring"
    exit 1
fi

############################
# OUTPUT FILE
############################
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M")
OUTPUT_FILE="$OUTPUT_DIR/${DOMAIN}_nginx_logs_last_${DAYS}_days_${TIMESTAMP}.log"

############################
# DATE RANGE
############################
START_DATE=$(date -d "$DAYS days ago" +"%d/%b/%Y")
END_DATE=$(date +"%d/%b/%Y")

ACCESS_LOG="$NGINX_LOG_DIR/${DOMAIN}.access.log"
ERROR_LOG="$NGINX_LOG_DIR/${DOMAIN}.error.log"

############################
# START REPORT
############################
{
echo "NGINX LOG REPORT"
echo "Domain : $DOMAIN"
echo "Period : Last $DAYS days ($START_DATE to $END_DATE)"
echo "Generated on : $(date)"
echo "=========================================="

############################
# ACCESS LOG
############################
echo ""
echo "Access Log (last $DAYS days)"
echo "------------------------------------------"

if [[ -f "$ACCESS_LOG" ]]; then
    awk -v start="$START_DATE" '$4 ~ start {print}' "$ACCESS_LOG" | tail -n 100
else
    echo "Access Log NOT FOUND : $ACCESS_LOG"
fi

############################
# ERROR LOG
############################
echo ""
echo "Error Log (last $DAYS days)"
echo "------------------------------------------"

if [[ -f "$ERROR_LOG" ]]; then
    grep "$(date +"%Y/%m")" "$ERROR_LOG" | tail -n 100
else
    echo "Error Log NOT FOUND : $ERROR_LOG"
fi

echo ""
echo "END OF REPORT"
} | tee "$OUTPUT_FILE"

############################
# FINAL MESSAGE
############################
echo ""
echo "Output saved to:"
echo "$OUTPUT_FILE"