Wjn d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZ d dl m Z d dlmZm Z mZ d dlmZ d dlZd dlmZ d dlmZmZ d dlmZ d d lmZ d d lmZ d dlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' G d d Z(dS ) N)datetimetimezone)Path)DictAnyOptional)deepcopy)PKG_VERSION)cpusersuserdomains)drop_privileges)ApacheProcessor)DocrootProcessor) VERSION MAJOR_VERSTORAGE_DIROPT_OUT_FILEDOCROOT_SCAN_TIMEOUTDOCROOT_LIMIT_PER_RUNSENDING_TIMEOUTSENDING_COMPRESSIONMAX_RECORD_SIZEFILE_SIZE_LIMITc v e Zd ZdZd1dej dee dee fdZ de de fd Zde fd Zd2dZ d2dZd edee fdZd2dZdedefdZdededdfdZd2dZedefd ZdeddfdZdededededede eef fdZde eef defdZde eef de eef fd Zd ed!ed"ed#e eef de eef d$ede eef fd%Zd&ed'ed(ed)edef d*Zd&ed'edededededed+edefd,Z ded-eded&ed'edededededed+edefd.Z! d3dededededed&ed+ed'eddfd0Z"dS )4WebsiteCollectoraB Website data collection. Collects and exports various Apache-related data: - Apache configuration files (.conf) from standard directories - Apache system information (version, loaded modules) - .htaccess files from website document roots - Maintains processing state to avoid duplicate scans Nloggerstorage_dir max_sitesc |t }|| _ || _ | j dt | j | | t | j | _ t | j | _ |dz | _ |dz | _ di dd | _ t | j | _ | | dS ) a Initialize website collector for on-demand data collection and sending. Args: storage_dir: Directory for storing website collector state max_sites: Maximum number of sites to process (with hash-based selection) Nz1[WEBSITE-COLLECTOR] Initialized with max_sites=%s)r )r zwebsite_collector_stats.jsonz dry-run.jsonlFr )global_apache_configs_sentdocrootscollected_version)r r r debugstr_ensure_directoriesr docroot_processorr apache_processor stats_filedry_run_filesending_stat_defaultsr sending_stats_load_sending_statsreset_cache_within_version)selfr r r s ]/opt/cloudlinux/venv/lib64/python3.11/site-packages/cl_website_collector/website_collector.py__init__zWebsiteCollector.__init__5 s %K"MsSWSaObObccc [ 999 "2!E!E!E /t{ C C C &(FF'/9*/!"& & " &d&@AA """ ''))))) docroots_datareturnc | j |S t | j di }t d| j |z }|dk r#| j d|| j i S t | |k r|S g }| D ]U\ }}t j | }| |||f V| d i }|d| D ]\ } }}|||<