[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: proctitle.py
File is not writable. Editing disabled.
# coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT from __future__ import absolute_import from builtins import filter import logging import os import re import time from lvestats.lib.commons.func import get_all_user_domains, normalize_domain class Proctitle(object): """ Class for working with mod_procurl files """ def __init__(self, shm_dir="/dev/shm/"): self.now = 0 self.log = logging.getLogger('Proctitle') self.SHM_DIR = shm_dir self.FILE_PATTERN = re.compile(r"apache_title_shm_[0-9]+_[0-9]+_[0-9]+$", re.IGNORECASE) self.parsed_data = self._get_all_data() def _get_all_data(self): """ 1) Get all files in the self.SHM_DIR that mathes to the regexp self.FILE_PATTERN 2) Read every file to the first \x00 simbol 3) If apache process is iddle file content equals to httpd, else it should contain 5 values separated by space 4) Split every interesting line and return :return: list of the lists [[Timestamp, Domain, Http type, Path, Http version],...] """ result = [] if os.path.exists(self.SHM_DIR): files = filter(self.FILE_PATTERN.search, os.listdir(self.SHM_DIR)) self.now = time.time() for file in files: try: file_name = os.path.join(self.SHM_DIR, file) with open(file_name, 'r') as http_stats: http_stats_line = http_stats.readline() http_stats_line = http_stats_line.split('\x00')[0] if not http_stats_line == "httpd": http_stats_line_split = http_stats_line.split(" ") if len(http_stats_line_split) == 5: result.append(http_stats_line_split + [file.split("_")[-3]]) else: self.log.debug("Number of values in file %s is not equal to 5", file) except IOError as e: self.log.debug(str(e)) return result def get_user_data(self, username): """ Returns information about processed by user pages. :param username: :return: list of the lists [[Pid, Domain, Path, Http type, Http version, Time],...] """ all_domains = get_all_user_domains(username) normalized_domains = set(map(normalize_domain, all_domains)) result = [] for data in self.parsed_data: if normalize_domain(data[1]) in normalized_domains: result.append([data[5], data[1], data[2], data[3], data[4], "%.1f" % (self.now - float(data[0]))]) return result
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 783.07 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A