Apache日志信息提取_apache日志存储路径

Apache日志信息提取_apache日志存储路径

经验文章nimo972025-02-07 17:00:288A+A-

#!/bin/bash


# 检查日志文件是否存在并可读

if [[ ! -f access.log ]]; then

echo "Error: access.log file not found or not readable."

exit 1

fi


# 定义关联数组,用于存储每个IP的访问次数、URL列表以及每个URL的访问次数

declare -A ip_count

declare -A ip_urls

declare -A url_count


# 初始化最大访问次数和对应的URL

max_count=0

max_url=""


# 读取日志文件,一次性完成所有统计

while read -r line; do

# 提取IP地址和URL

ip=$(echo "$line" | awk '{print $1}')

url=$(echo "$line" | awk '{print $7}')


# 统计每个IP的访问次数

((ip_count[$ip]++))


# 统计每个IP访问的URL

if [[ ${ip_urls[$ip]} ]]; then

ip_urls[$ip]+=",$url"

else

ip_urls[$ip]=$url

fi


# 统计每个URL的访问次数

((url_count[$url]++))


# 更新最频繁访问的URL

if [[ ${url_count[$url]} -gt $max_count ]]; then

max_count=${url_count[$url]}

max_url=$url

fi

done < access.log


# 输出每个IP的访问次数

for ip in "${!ip_count[@]}"; do

echo "$ip: ${ip_count[$ip]}"

done


# 输出每个IP访问的URL

for ip in "${!ip_urls[@]}"; do

echo "$ip: ${ip_urls[$ip]}"

done


# 如果有最频繁访问的URL,则输出

if [[ $max_count -gt 0 ]]; then

echo "Most frequent URL: $max_url (count: $max_count)"

else

echo "No URLs found in the log file."

fi

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7