Evaggelos Balaskas - System Engineer

The sky above the port was the color of television, tuned to a dead channel

Blog
Posts
Wiki
About
Contact
rss.png twitter linkedin github gitlab profile for ebal on Stack Exchange

postfix & recipient bcc aka Automatic BCC recipients »
  -  
« Use gmail to educate spamassassin
Jan
04
2011
You can use vim to crash a server
Posted by ebal at 18:11:49 in planet_ellak

Το παρόν post αφορά κυρίως sysadmins, οι υπόλοιποι διαβάστε το για να πάρετε μια ιδέα πως είναι να εργάζεσαι ως sysadmin.

Διαβάζοντας το εξής άρθρο: Henry’s Techno-Musings: Philosophy of Troubleshooting: Sea of Troubles (ξέρω, ξέρω πολύ μεγάλος τίτλος. Μα είναι στο linux gazette, οπότε δώστε του μια ευκαιρία) θυμήθηκα κάτι από το 2006 όταν ξεκίνησα να εργάζομαι στην τωρινή μου θέση.

Πριν εξιστορήσω όμως την ιστορία, θα πρέπει να τονίσω ότι κάθε sysadmin που σέβεται τον εαυτό του ή θέλει να τον σέβονται οι άλλοι, θα πρέπει να γνωρίζει τι είναι τα semaphores ειδικά δε, εάν εργάζεται με τον apache web server.

[story]
Περί το τέλος του 2006 σε ένα ξεχασμένο datacenter, ένας ταπεινός sysadmin εργάζεται στο γραφείο του. Με ζήλο για την δουλειά του, νέος στον συγκεκριμένο χώρο, προσπαθεί να μαζέψει όλες τις απαραίτητες πληροφορίες ώστε να επιλύσει ένα πρόβλημα που ταλάνιζε πελάτες κι άλλους ταπεινούς sysadmins. Ο apache δεν δούλευε σωστά! Κι έτσι ο ταπεινός μας sysadmin σκέφτηκε να ρίξει μια ματιά στα logs. Θέλοντας τα δείξει ότι γνωρίζει τα μυστικά του vim, προσπάθησε να ανοίξει δύο log αρχεία με μία εντολή κι έτσι έγραψε:


vim -O logfile1 logfile2

Δεν κοίταξε όμως ποτέ το μέγεθος των αρχείων. Δεν είδε ποτέ ότι το κάθε αρχείο ήταν περίπου 2 με 2.5 gb και δεν κατάλαβε ποτέ γιατί ξαφνικά η ελεύθερη 4gb μνήμη γέμισε σε μερικά δευτερόλεπτα. Επίσης Δεν μπόρεσε να εξηγήσει εκείνη την στιγμή γιατί ο server έγινε κόκκινος στο monitor.
Σκέφτηκε ότι δεν μπορεί να φταίει αυτός, αυτός ένα vim άνοιξε!
Αλλά εν τέλη είχε καταφέρει να κρασάρει τον web server.

[/story]

Φυσικά κι αυτός ήμουν εγώ (σε άλλο άρθρο θα σας γράψω άλλη παρόμοια ιστορία).
Φυσικά από το τότε λάθος, έμαθα. Δεν είναι όμως πρέπον να μαθαίνεις μόνο από λάθη,
χρειάζεται να μαθαίνουμε κι από τα σωστά και τις εμπειρίες των άλλων.

Επίλογος:

Για επίλογο θα σας δώσω τρεις εντολές και πως χρησιμοποιούνται.

Το πρόβλημα είναι ότι ο apache έχει τερματιστεί και δεν σηκώνεται ή δεν έχει τερματιστεί καλά ή whatever, δεν παίζουν οι ινδιάνοι.

01.


lsof | egrep --color -i 'http|apache'

Βλέπουμε τα ανοιχτά αρχεία που έχουν δεσμευτεί από τον web server μας.

02.


ipcs -s

Χρειαζόμαστε την 2η στήλη με τα semid. Βλέπουμε ποιοι πόροι του συστήματός μας είναι δεσμευμένοι από τον web server μας.

03.


ipcrm -s SEMID

Αποδεσμεύουμε τον συγκεκριμένο πόρο από το σύστημά μας. Φυσικά μπορεί να χρειαστούν πολλά ipcrm και φυσικά πρέπει να αντικαταστήσετε το SEMID με το πραγματικό, αυτό που έχετε δει από το ipcs.

  • 2 comments
postfix & recipient bcc aka Automatic BCC recipients »
  -  
« Use gmail to educate spamassassin

Search

Admin area

  • Login

Categories

  • blog
  • wiki
  • pirsynd
  • midori
  • books
  • archlinux
  • movies
  • xfce
  • code
  • beer
  • planet_ellak
  • planet_Sysadmin
  • microblogging
  • UH572
  • KoboGlo
  • planet_fsfe

Archives

  • 2025
    • April
    • March
    • February
  • 2024
    • November
    • October
    • August
    • April
    • March
  • 2023
    • May
    • April
  • 2022
    • November
    • October
    • August
    • February
  • 2021
    • November
    • July
    • June
    • May
    • April
    • March
    • February
  • 2020
    • December
    • November
    • September
    • August
    • June
    • May
    • April
    • March
    • January
  • 2019
    • December
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2018
    • December
    • November
    • October
    • September
    • August
    • June
    • May
    • April
    • March
    • February
    • January
  • 2017
    • December
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2016
    • December
    • November
    • October
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2015
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • January
  • 2014
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2013
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2012
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2011
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2010
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
  • 2009
    • December
    • November
    • October
    • September
    • August
    • July
    • June
    • May
    • April
    • March
    • February
    • January
Ευάγγελος.Μπαλάσκας.gr

License GNU FDL 1.3 - CC BY-SA 3.0