宝塔linux面板网站日志保存在什么位置

本文发布日期:23-04-26 10:37:53  浏览次数:181

保存在www目录里面的wwwlogs文件夹,.log文件名的名字就是网站名字,有运行日志和错误日志。

file

这段代码可以分析服务器日志,统计IP访问,自用可能要修改,因为每个服务器系统生成的日志格式可能不一样.

import re
from collections import defaultdict

def analyze_access_log(logfile):
    ip_count = defaultdict(int)  # 统计IP地址出现次数
    status_count = defaultdict(int)  # 统计HTTP状态码出现次数
    method_count = defaultdict(int)  # 统计请求方法出现次数
    referer_count = defaultdict(int)  # 统计引荐网址出现次数
    daily_ip_count = defaultdict(set)  # 统计每天的IP地址集合

    with open(logfile, 'r', encoding='utf-8') as f:
        for line in f:
            m = re.match(r'^([\d\.]+) .* "(GET|POST|PUT|DELETE)\s.*" (\d+) \d+ "(.*?)"', line)
            if m:
                ip_address = m.group(1)
                request_method = m.group(2)
                http_status_code = m.group(3)
                referer_url = m.group(4).strip()

                ip_count[ip_address] += 1
                status_count[http_status_code] += 1
                method_count[request_method] += 1
                referer_count[referer_url] += 1

            time_m = re.search(r'\[(\d{2}/\w{3}/\d{4})', line)
            if time_m:
                access_time_str = time_m.group(1)  # 获取访问日期(格式为 dd/mmm/yyyy)
                key = '-'.join(access_time_str.split('/')[::-1])  # 将日期格式转化为 yyyy-mm-dd,方便排序和输出结果
                daily_ip_count[key].add(ip_address)

    result = {
        'ip_count': dict(ip_count),
        'status_count': dict(status_count),
        'method_count': dict(method_count),
        'referer_count': dict(referer_count),
        'daily_ip_count': {k: len(v) for k, v in daily_ip_count.items()}  # 统计每日独立 IP 数量
    }

    return result

logfile = 'access.log'  # 修改为实际的日志文件路径
result = analyze_access_log(logfile)

# 打印统计结果
for k, v in result.items():
    print(k + ':', v)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注