Πώς να χρησιμοποιήσετε το τερματικό του λογαριασμού φιλοξενίας σας για να αναλύσετε την κίνηση και τη χρήση χώρου στον δίσκο

Η Polar55 προσφέρει φιλοξενία ιστοσελίδων φιλική προς τους προγραμματιστές, επομένως έχετε φυσικά πρόσβαση και στο τερματικό, τόσο μέσω SSH όσο και απευθείας από το cPanel.

Η χρήση του τερματικού μπορεί να φαίνεται λίγο τρομακτική και λίγοι γνωρίζουν από πού να ξεκινήσουν. Ωστόσο, με την τεχνητή νοημοσύνη έχει γίνει πολύ πιο εύκολη. Μπορείτε απλώς να αντιγράψετε τις εντολές που σας δίνει στο τερματικό και στη συνέχεια να της στείλετε το αποτέλεσμα. Έπειτα, μπορεί να σας προτείνει μια νέα εντολή ανάλογα με το τι θέλετε να εξετάσετε.

Σε αυτόν τον οδηγό θα σας δείξουμε μερικά παραδείγματα χρήσης του τερματικού. Είναι όμως σημαντικό να τονίσουμε ότι η διαδικασία γίνεται πραγματικά αποτελεσματική όταν χρησιμοποιείτε την τεχνητή νοημοσύνη τόσο για τη δημιουργία των εντολών όσο και για την ανάλυση των αποτελεσμάτων τους.

Εξετάστε την υψηλή χρήση CPU και πιθανή κίνηση από bots

Ο λογαριασμός φιλοξενίας σας χρησιμοποιεί πολλούς πόρους CPU ή η ιστοσελίδα σας είναι αργή; Αυτό μπορεί να οφείλεται σε αυτοματοποιημένα bots ή σε πολλά επαναλαμβανόμενα αιτήματα προς την ιστοσελίδα σας.

Με το τερματικό του cPanel μπορείτε να εξετάσετε την κίνηση στις ιστοσελίδες σας. Θα βρείτε το Terminal στην ενότητα Advanced → Terminal του cPanel. Οι παρακάτω εντολές διαβάζουν μόνο δεδομένα και δεν αλλάζουν τίποτα στον λογαριασμό φιλοξενίας σας.

Βρείτε τα πιο ενεργά User-Agents

Το User-Agent είναι η συμβολοσειρά αναγνώρισης που στέλνει ένα πρόγραμμα περιήγησης ή ένα bot μαζί με το αίτημά του. Η παρακάτω εντολή δείχνει ποια User-Agents έχουν κάνει τα περισσότερα αιτήματα που έλαβαν απάντηση HTTP 200 τα τελευταία 60 λεπτά:

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

Παράδειγμα αποτελέσματος:

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

Ο αριθμός στα αριστερά δείχνει το πλήθος των αιτημάτων. Αν κάποιο User-Agent ξεχωρίζει αισθητά, μπορείτε να εξετάσετε από ποιες διευθύνσεις IP προέρχεται η κίνηση.

Σημείωση: Τα πολλά αιτήματα δεν είναι απαραίτητα ύποπτα. Για παράδειγμα, το WP Rocket μπορεί να δημιουργεί πολλά αιτήματα κατά τη δημιουργία της προσωρινής μνήμης. Επίσης, τα User-Agents μπορούν να πλαστογραφηθούν. Η εντολή εμφανίζει μόνο απαντήσεις HTTP 200 και όχι, για παράδειγμα, HTTP 403 ή 429.

Βρείτε τις διευθύνσεις IP πίσω από ένα συγκεκριμένο User-Agent

Αντιγράψτε το User-Agent που θέλετε να εξετάσετε και επικολλήστε το ανάμεσα στα εισαγωγικά μετά το UA=. Εδώ χρησιμοποιούμε το Microsoft Edge ως παράδειγμα:

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

Παράδειγμα αποτελέσματος:

865 192.0.2.10
591 198.51.100.20
  1 203.0.113.30

Εδώ βλέπετε ότι τα περισσότερα αιτήματα προέρχονται από δύο διευθύνσεις IP.

Αποκλείστε μια διεύθυνση IP μέσω του cPanel

Αν έχετε εξετάσει την κίνηση και κρίνετε ότι μια διεύθυνση IP προκαλεί προβλήματα, μπορείτε να την αποκλείσετε μέσω του cPanel:

  1. Συνδεθείτε στο cPanel.
  2. Ανοίξτε το Security → IP Blocker.
  3. Εισαγάγετε τη διεύθυνση IP που θέλετε να αποκλείσετε.
  4. Κάντε κλικ στο Add.
  5. Επαναλάβετε για περισσότερες διευθύνσεις IP, αν χρειάζεται.

Μπορείτε αργότερα να άρετε τον αποκλεισμό από το ίδιο σημείο. Λάβετε υπόψη ότι μια διεύθυνση IP μπορεί επίσης να ανήκει σε έναν κανονικό επισκέπτη ή σε μια κοινόχρηστη σύνδεση στο διαδίκτυο.

Μάθετε ποιο domain δέχεται τη μεγαλύτερη κίνηση

Αν έχετε πολλές ιστοσελίδες στον ίδιο λογαριασμό cPanel, μπορείτε να εξετάσετε ποιο domain έχει δεχτεί τα περισσότερα αιτήματα τα τελευταία 60 λεπτά. Αυτό μπορεί να σας βοηθήσει να εντοπίσετε την ιστοσελίδα που πρέπει να εξετάσετε πιο προσεκτικά όταν η χρήση CPU είναι υψηλή.

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 = {}

# Ανάκτηση της σωστής αντιστοίχισης domain από το cPanel
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

# Έλεγχος των αρχείων καταγραφής πρόσβασης για τα τελευταία 60 λεπτά
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)

        # Αποφυγή ανάγνωσης του ίδιου αρχείου μέσω πολλών σκληρών συνδέσμων
        if identity in seen:
            continue
        seen.add(identity)

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

        # Εμφάνιση του σωστού ονόματος domain από το cPanel
        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('ΑΙΤΗΜΑΤΑ ΑΝΑ DOMAIN – ΤΕΛΕΥΤΑΙΑ 60 ΛΕΠΤΑ')
print()

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

Παράδειγμα αποτελέσματος:

ΑΙΤΗΜΑΤΑ ΑΝΑ DOMAIN – ΤΕΛΕΥΤΑΙΑ 60 ΛΕΠΤΑ

    4821  istoselida-a.gr
     936  istoselida-b.gr
     124  istoselida-c.gr

Σε αυτό το παράδειγμα, το istoselida-a.gr δέχεται πολύ περισσότερη κίνηση από τις υπόλοιπες ιστοσελίδες.

Ωστόσο, τα πολλά αιτήματα δεν σημαίνουν απαραίτητα υψηλή χρήση CPU. Ένα μόνο απαιτητικό αίτημα WordPress μπορεί να επιβαρύνει τον διακομιστή περισσότερο από πολλά αιτήματα που εξυπηρετούνται από την προσωρινή μνήμη. Οι αριθμοί αυτοί αποτελούν επομένως μια ένδειξη και όχι άμεση μέτρηση της χρήσης CPU.

Ελέγξτε τη χρήση χώρου στον δίσκο και βρείτε τα μεγαλύτερα αρχεία

Τελειώνει ο χώρος στον δίσκο του λογαριασμού φιλοξενίας σας; Με το Terminal μπορείτε να βρείτε τα μεγαλύτερα αρχεία στον λογαριασμό σας. Αυτό είναι ιδιαίτερα χρήσιμο για τον εντοπισμό παλιών αντιγράφων ασφαλείας, μεγάλων αρχείων καταγραφής και άλλων αρχείων που ενδέχεται να μη χρειάζονται πλέον.

Βρείτε τα 20 μεγαλύτερα αρχεία

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

Παράδειγμα αποτελέσματος:

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

Κάντε υπομονή: Η εντολή μπορεί να χρειαστεί αρκετά λεπτά για να ολοκληρωθεί, ειδικά αν ο λογαριασμός σας περιέχει πολλά αρχεία.

Η εντολή είναι χρήσιμη για να εντοπίσετε τρόπους να ελευθερώσετε χώρο στον λογαριασμό φιλοξενίας σας. Δεν διαγράφει τίποτα.

Σημαντικό: Μη διαγράφετε ποτέ αρχεία αν δεν γνωρίζετε σε τι χρησιμεύουν. Μπορείτε να τα εξετάσετε πρώτα στη Διαχείριση αρχείων του cPanel πριν διαγράψετε οτιδήποτε.

  • 0 Χρήστες το βρήκαν χρήσιμο
Ήταν χρήσιμη αυτή η απάντηση;

Δεν βρήκατε λύση;

Αν δεν βρήκατε λύση αναζητώντας ή περιηγούμενοι στις κατηγορίες μας, μπορείτε να ανοίξετε νέο αίτημα υποστήριξης.

Άνοιγμα Νέου Αιτήματος

Σχετικά άρθρα

Δεν μπορώ να αποκτήσω πρόσβαση στις σελίδες μου, αλλά οι άλλοι μπορούν

Αν διαπιστώσετε ότι δεν μπορείτε να συνδεθείτε στο cPanel ή να δείτε τις σελίδες σας ενώ άλλοι...

Πώς μπορώ να φιλοξενήσω την ιστοσελίδα μου Lovable στη Polar55;

Έχουμε γράψει έναν οδηγό για το πώς μπορείτε να εξαγάγετε την ιστοσελίδα σας Lovable από το...

Δέσμη ενεργειών για εκκαθάριση διεργασιών Node.js που «κλειδώνουν» το web hosting σας

Αυτό το script πρέπει να εκτελείται ως cron job στον λογαριασμό φιλοξενίας σας (cPanel).Δεν...

Πώς να διορθώσετε τα σφάλματα 503 στον ιστότοπό σας

Ένα σφάλμα 503 εμφανίζεται όταν δεν υπάρχουν αρκετοί πόροι για να εκτελεστεί ένα script, με...

Πώς να περιορίσετε το μέγεθος των αρχείων error_log

Κάθε φορά που προκύπτει ένα σφάλμα PHP στον ιστότοπό σας – είτε πρόκειται για προειδοποίηση είτε...