Linux server troubleshooting: Βασικά εργαλεία (αν έχεις shell access)

dimitris | Δευ, 06/03/2013 - 20:13 | 6' | 4

Καταγράφω μερικές από τις βασικές εντολές για καθημερινό linux system/server administration. Δεν είναι όλα βέβαια, οπότε αν έχετε να προτείνετε κάποια χρήσιμη εντολή.... shoot!

Linux server troubleshooting: Βασικά εργαλεία (αν έχεις shell access)

top
Τα processes που τρέχει ο server, και πόσο %cpu time χρησιμοποιεί το καθένα, κατανάλωση μνήμης και swap.

ps -eo %cpu,%mem,pid,user,args --sort %cpu | sort -k 1 -r | head -50
Οι 50 διεργασίες με το περισσότερο %cpu time

mytop (ή mytop -s 1 για refresh ανά sec)
Τα queries που εκτελεί η MySQL. Βοήθεια: man mytop

iotop
Χρήση Ι/Ο (reads και writes στον δίσκο) ανά διεργασία/processid

uptime
Πόσες μέρες ειναι up o server και φόρτος τα τελευταία 1, 5 και 15 minutes

ifconfig
Ολες οι IP που έχουν οι κάρτες δικτύου του μηχανήματος

dmesg (ή tail -f /var/log/dmesg.log)
Το log των μηνυμάτων του πυρήνα Linux. Χρήσιμο για τον έλεγχο του boot, μετά τα ίδια μηνύματα εμφανίζονται και στο /var/log/syslog

tail -f /var/log/syslog
Το log όλων των μηνυμάτων του συστήματος (είτε είναι critical είτε απλά warnings από κάθε εφαρμογή) εκτός από τα authentication

tail -f /var/log/messages
To log μηνυμάτων του συστήματος και εφαρμογών (κυρίως warnings και μη-critical).

tail -f /var/log/auth.log
Το log των (αποπειρών) εισόδων χρηστών στο σύστημα

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n|wc -l
Πλήθος μοναδικών συνδέσεων στον server (όλες οι συνδέσεις)

netstat -atun | grep ESTABLISHED | wc -l
Πλήθος ανοικτών (established) συνδέσεων στον server

netstat -atun | grep TIME_WAIT | wc -l
Πλήθος συνδέσεων στον server σε κατάσταση TIME_WAIT (έχει κλείσει ένα end)

watch --interval=2 apache2ctl fullstatus
Ότι τρέχει ο apache. Πόσοι workers είναι loaded κλπ.

ls /etc/apache2/sites-enabled/
Ολα τα sites (configuration) που τρέχουν στον server

a2dissite
Εμφανίζει λίστα με ενεργά sites για να απενεργοποιήσεις

ps fax | grep apache | wc -l
Πλήθος apache instances

ps aux | grep /sbin/apache2 | grep root | grep -v grep
Δείχνει το id και πληροφορίες για το πρώτο apache process (αυτό που ξεκινάει όλα τα υπόλοιπα). Με pstree -p -u id βλέπεις το δέντρο με όλα τα apache child processes.

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 |tail -n 30
Οι 30 ip με τα περισσότερα http connections στην πόρτα 80

tail -f /var/log/apache2/access.log
Τελευταίες προσβάσεις στον default apache server

tail -f /var/log/apache2/sitename-error.log
Τα apache σφάλματα στο συγκεκριμένο site name

tail -f /var/log/apache2/sitename-access.log
Τελευταίες προσβάσεις στο συγκεκριμένο site

vim /etc/php/apache2/php.ini
Αρχείο ρύθμισης PHP, πχ.
max_execution_time = XXX ; Maximum execution time of each script, in seconds
max_input_time = 200 ; Maximum amount of time each script may spend parsing request data
memory_limit = 144M

tail -f /var/log/fail2ban.log
Τελευταία ban σε IP addresses από το fail2ban

postqueue -p
Ολα τα μηνύματα που δεν έχει στείλει ο mail server

postqueue -f
Προσπάθεια να σταλούν όλα τα μηνύματα που δεν έχει στείλει ο server

tail -f /var/log/mysql.err
Τα σφάλματα στην MySQL. Πρέπει να το κάνεις enabled στο my.cnf. Εξορισμού είναι κλειστό.

tail -f /var/log/mysql.log
Το log με όλα τα συμβάντα της MySQL

mysqlcheck --all-in-1 --auto-repair --fast -A
Repair όλων των tables όλων των databases που δεν έκλεισαν σωστά

mysqlrepair database_name
Repair μόνο της συγκεκριμένης βάσης δεδομένων database_name

vim /etc/mysql/my.cnf
Το αρχείο ρύθμισης της MySQL. Κράτα max_connections > apache max_clients

Φόρουμ
Δώσε αστέρια!

MO: 5 (ψήφοι: 1)

Σχόλια

Του πυρήνα Linux βρε [img]/smileys/smiley-wink.gif[/img]

Η μόνη "παρατήρηση" είναι ότι η -f (follow) flag στην tail command, δεν εμφανίζει απλά τις τελευταίες 10 γραμμές του file (default συμπεριφορά αν δεν προστεθεί πλήθος γραμμών με την παράμετρο -n) αλλά κάνει "stream" στην οθόνη νέων καταχωρήσεων (στα παραδείγματα του log file).

Για την netstat, είχαμε γράψει ένα αναλυτικό άρθρο εδώ: [url=https://www.hostdog.gr/blog/%CF%80%CF%8E%CF%82-%CE%B8%CE%B1-%CE%B2%CF%81%CF%89-%CF%84%CE%B9%CF%82-ip-%CF%80%CE%BF%CF%85-%CF%83%CF%85%CE%BD%CE%B4%CE%AD%CE%BF%CE%BD%CF%84%CE%B1%CE%B9-%CF%83%CF%84%CE%BF%CE%BD-server-%CE%BC%CE%BF%CF%85]πώς θα βρω τις ip που συνδέονται στον server μου;[/url]
Κατά τ' άλλα όχι ότι είναι έλλειψη του post, αλλά θα μπορούσαν να μπουν και σε μια γωνιά:

df -h
Human readable check πόσος χώρος μας μένει στους δίσκους

cat /proc/mdstat
Πληροφορίες για το σε τι κατάσταση είναι το RAID μας

ping, traceroute, dig, nslookup φαντάζομαι εννοούνται

Επίσης η mtr (που χονδρικά κάνει ping όλα τα hops από μια traceroute και μετράει dropped packages) μπορεί να εμφανίσει κάποια bottlenecks στο δίκτυο

screen όταν θέλουμε να βρούμε ανοικτό το terminal από άλλο PC ή ξέρουμε ότι κάποια εργασία θα πάρει ώρες

Ευχαριστώ για τη διόρθωση και τις εύστοχες προτάσεις. Πράγματι ένα κομμάτι για RAID έλειπε. :)

Από όσο γνωρίζω εκτός από το ifconfig υπάρχει και μια εντολή που λέγεται ip addr (τουλάχίστον στο debian 7.0)

gianis7]

Από όσο γνωρίζω εκτός από το ifconfig υπάρχει και μια εντολή που λέγεται ip addr (τουλάχίστον στο debian 7.0)

Σωστά. Το ίδιο πράγμα κάνουν ουσιαστικά.