So nutzen Sie das Terminal Ihres Webhosting-Kontos, um Traffic und Speicherplatzverbrauch zu analysieren

Polar55 bietet entwicklerfreundliches Webhosting. Deshalb haben Sie selbstverständlich auch Zugriff auf das Terminal, sowohl über SSH als auch direkt über Ihr cPanel.

Die Nutzung des Terminals kann etwas einschüchternd wirken, und die wenigsten wissen, wie sie anfangen sollen. Mit KI ist es jedoch deutlich einfacher geworden: Sie können die von der KI bereitgestellten Befehle in das Terminal kopieren und ihr anschließend die Ausgabe übermitteln. Danach kann sie Ihnen je nach Fragestellung einen weiteren Befehl vorschlagen.

In dieser Anleitung zeigen wir Ihnen einige Beispiele dafür, wofür Sie das Terminal nutzen können. Es ist jedoch wichtig zu betonen, dass dies erst dann wirklich effizient wird, wenn Sie eine KI sowohl die Befehle erstellen als auch deren Ausgaben analysieren lassen.

Hohe CPU-Auslastung und möglichen Bot-Traffic untersuchen

Verbraucht Ihr Webhosting-Konto viele CPU-Ressourcen oder ist Ihre Website langsam? Das kann an automatisierten Bots oder vielen wiederholten Anfragen an Ihre Website liegen.

Mit dem cPanel-Terminal können Sie den Traffic Ihrer Websites untersuchen. Sie finden das Terminal in cPanel unter Advanced → Terminal. Die folgenden Befehle lesen ausschließlich Daten und verändern nichts an Ihrem Webhosting-Konto.

Die aktivsten User-Agents finden

Ein User-Agent ist die Kennung, die ein Browser oder Bot mit seiner Anfrage übermittelt. Der folgende Befehl zeigt, welche User-Agents in den letzten 60 Minuten die meisten Anfragen mit einer HTTP-200-Antwort gestellt haben:

grep -hE "$(for i in $(seq 0 59); do LC_ALL=C date -d "$i minutes ago" '+%d/%b/%Y:%H:%M'; done | paste -sd'|' -)" \
~/access-logs/* 2>/dev/null \
| awk -F'"' '$3 ~ /^ 200 / {
    ua=$6;
    if (ua=="") ua="-";
    print ua
}' \
| sort | uniq -c | sort -nr | head -100

Beispielausgabe:

1662 Mozilla/5.0 ... Edg/156.0.0.0
 810 Mozilla/5.0 ... Chrome/156.0.0.0 Mobile
 479 WP Rocket/Preload
  96 Mozilla/5.0 ... bingbot/2.0

Die Zahl links gibt die Anzahl der Anfragen an. Wenn ein User-Agent deutlich hervorsticht, können Sie untersuchen, von welchen IP-Adressen der Traffic stammt.

Hinweis: Viele Anfragen sind nicht unbedingt verdächtig. Beispielsweise kann WP Rocket beim Aufbau des Caches viele Anfragen erzeugen. User-Agents können außerdem gefälscht werden. Der Befehl zeigt nur HTTP 200 an, nicht jedoch beispielsweise HTTP 403 oder 429.

Die IP-Adressen hinter einem bestimmten User-Agent finden

Kopieren Sie den User-Agent, den Sie untersuchen möchten, und fügen Sie ihn zwischen den Anführungszeichen nach UA= ein. Hier verwenden wir Microsoft Edge als Beispiel:

UA='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/156.0.0.0 Safari/537.36 Edg/156.0.0.0'

grep -hE "$(for i in $(seq 0 59); do LC_ALL=C date -d "$i minutes ago" '+%d/%b/%Y:%H:%M'; done | paste -sd'|' -)" \
~/access-logs/* 2>/dev/null \
| awk -F'"' -v ua="$UA" '
    $3 ~ /^ 200 / && $6 == ua {
        split($1,a," ")
        print a[1]
    }
' \
| sort | uniq -c | sort -nr | head -20

Beispielausgabe:

865 192.0.2.10
591 198.51.100.20
  1 203.0.113.30

Hier sehen Sie, dass der Großteil der Anfragen von zwei IP-Adressen stammt.

Eine IP-Adresse über cPanel sperren

Wenn Sie den Traffic untersucht haben und zu dem Schluss kommen, dass eine IP-Adresse Probleme verursacht, können Sie diese über cPanel sperren:

  1. Melden Sie sich bei cPanel an.
  2. Öffnen Sie Security → IP Blocker.
  3. Geben Sie die IP-Adresse ein, die Sie sperren möchten.
  4. Klicken Sie auf Add.
  5. Wiederholen Sie den Vorgang bei Bedarf für weitere IP-Adressen.

Sie können die Sperre später an derselben Stelle aufheben. Beachten Sie, dass eine IP-Adresse auch zu einem legitimen Besucher oder einem gemeinsam genutzten Internetanschluss gehören kann.

Herausfinden, welche Domain den meisten Traffic erhält

Wenn Sie mehrere Websites auf demselben cPanel-Konto betreiben, können Sie untersuchen, welche Domain in den letzten 60 Minuten die meisten Anfragen erhalten hat. Das kann Ihnen bei hoher CPU-Auslastung helfen, die Website zu finden, die Sie genauer untersuchen sollten.

python3 - <<'PY'
import glob
import json
import os
import re
import subprocess
from collections import Counter
from datetime import datetime, timedelta

now = datetime.now().astimezone()
start = now - timedelta(minutes=60)

counts = Counter()
domains = {}

# Die korrekte Domainzuordnung aus cPanel abrufen
try:
    result = subprocess.run(
        ['uapi', '--output=json', 'DomainInfo', 'domains_data'],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        universal_newlines=True,
        timeout=15
    )

    if result.returncode == 0:
        response = json.loads(result.stdout)
        data = response.get('result', {}).get('data') or {}

        for category in ('addon_domains', 'sub_domains'):
            for item in data.get(category) or []:
                if not isinstance(item, dict):
                    continue

                internal = item.get('servername')
                public = item.get('domain')

                if internal and public:
                    domains[internal] = public

        main = data.get('main_domain') or {}
        if isinstance(main, dict):
            internal = main.get('servername')
            public = main.get('domain')

            if internal and public:
                domains[internal] = public

except (OSError, ValueError, subprocess.TimeoutExpired):
    pass

# Zugriffsprotokolle für die letzten 60 Minuten durchsuchen
seen = set()

for path in glob.glob(os.path.expanduser('~/access-logs/*')):
    try:
        if not os.path.isfile(path):
            continue

        stat = os.stat(path)
        identity = (stat.st_dev, stat.st_ino)

        # Dieselbe Datei nicht mehrfach über verschiedene Hardlinks lesen
        if identity in seen:
            continue
        seen.add(identity)

        name = os.path.basename(path)
        name = re.sub(r'-ssl_log$', '', name)

        # Den richtigen Domainnamen aus cPanel anzeigen
        domain = domains.get(name, name)

        with open(path, errors='replace') as logfile:
            for line in logfile:
                match = re.search(r'\[([^\]]+)\]', line)

                if not match:
                    continue

                try:
                    timestamp = datetime.strptime(
                        match.group(1),
                        '%d/%b/%Y:%H:%M:%S %z'
                    )
                except ValueError:
                    continue

                if start <= timestamp <= now:
                    counts[domain] += 1

    except OSError:
        continue

print('ANFRAGEN PRO DOMAIN – LETZTE 60 MINUTEN')
print()

for domain, count in counts.most_common():
    print('{:8}  {}'.format(count, domain))
PY

Beispielausgabe:

ANFRAGEN PRO DOMAIN – LETZTE 60 MINUTEN

    4821  website-a.de
     936  website-b.de
     124  website-c.de

In diesem Beispiel erhält website-a.de deutlich mehr Traffic als die anderen Websites.

Viele Anfragen bedeuten jedoch nicht zwangsläufig eine hohe CPU-Auslastung. Eine einzige ressourcenintensive WordPress-Anfrage kann den Server stärker belasten als viele Anfragen, die aus dem Cache bedient werden. Die Zahlen dienen daher als Anhaltspunkt und sind keine direkte Messung der CPU-Auslastung.

Speicherplatzverbrauch untersuchen und die größten Dateien finden

Wird der Speicherplatz auf Ihrem Webhosting-Konto knapp? Mit dem Terminal können Sie die größten Dateien auf Ihrem Konto finden. Das ist besonders hilfreich, um alte Backups, große Protokolldateien und andere Dateien aufzuspüren, die möglicherweise nicht mehr benötigt werden.

Die 20 größten Dateien finden

find ~ -type f -printf '%s %p\n' 2>/dev/null \
| sort -nr | head -20 \
| awk '{printf "%.1f MB  %s\n", $1/1048576, $2}'

Beispielausgabe:

1850.4 MB  /home/user/backups/backup-old.zip
 724.2 MB  /home/user/public_html/wp-content/backup.zip
 312.8 MB  /home/user/public_html/error_log

Haben Sie Geduld: Die Ausführung des Befehls kann mehrere Minuten dauern, insbesondere wenn Ihr Konto viele Dateien enthält.

Der Befehl hilft Ihnen, Möglichkeiten zum Freigeben von Speicherplatz auf Ihrem Webhosting-Konto zu finden. Er löscht nichts.

Wichtig: Löschen Sie niemals Dateien, wenn Sie nicht wissen, wofür sie verwendet werden. Prüfen Sie diese gegebenenfalls zuerst im Dateimanager von cPanel, bevor Sie etwas löschen.

  • 0 Benutzer fanden dies hilfreich
War diese Antwort hilfreich?

Keine Lösung gefunden?

Wenn Sie durch Suchen oder das Durchstöbern unserer Kategorien keine Lösung gefunden haben, können Sie ein neues Support-Ticket eröffnen.

Neues Ticket eröffnen

Verwandte Artikel

Ich kann nicht auf meine eigenen Seiten zugreifen, aber andere können

Wenn Sie feststellen, dass Sie sich nicht bei cPanel anmelden oder Ihre eigenen Seiten sehen...

Wie hoste ich meine Lovable-Website bei Polar55?

Wir haben eine Anleitung geschrieben, wie du deine Lovable-Website aus Lovable exportieren und...

Skript zum Bereinigen von Node.js-Prozessen, die Ihr Webhosting blockieren

Dieses Skript sollte als Cron-Job auf Ihrem cPanel-Webhosting-Konto ausgeführt werden. Dies ist...

Wie man 503-Fehler auf Ihrer Website behebt

Ein 503-Fehler tritt auf, wenn nicht genügend Ressourcen vorhanden sind, um ein Skript...

Wie man die Größe der error_log-Dateien begrenzt

Jedes Mal, wenn auf Ihrer Website ein PHP-Fehler auftritt – sei es nur eine Warnung oder ein...