betabug... Sascha Welter

home english | home deutsch | Site Map | Sascha | Kontakt | Pro | Weblog | Wiki

18 October 2006

Μου μιλάς ακόμα;

Πως να τσεκάρουμε αν είναι ζωντανός ένας εξυπηρετητής

Ένας γνωστός server τον όποιον διαχειρίζομαι με άλλους έχει πρόβλημα και σταματάει τη λειτουργία του κάθε τόσο. Μάλλον πρόβλημα hardware, αλλά είναι δύσκολο να ξέρουμε. Αυτό που θέλω να κάνω, όμως, είναι να μαθαίνω νωρίτερα αν υπάρχει πρόβλημα, δηλαδή αν δεν απαντάει...


Ευτυχώς έχω και δικό μου "εξυπηρετητή" και μπορεί να με εξυπηρετεί για αυτό. Θα μπορούσα να ψάξω στον Ιστό για ένα πρόγραμμα που κάνει αυτή την δουλειά, μα δεν χρειάζεται. Το Unix του server μου έχει όλα τα εργαλεία που χρειάζομαι για αυτή την δουλειά, αρκεί να τα βάλω στην σειρά. Στόχος είναι να κατεβάζουμε κάθε τόσο μια σελίδα από τον web server, μόνο και μόνο για να δούμε αν παίζει, το τι περιέχει η σελίδα λογικά δεν μας αφορά. Για να μην σπαταλάμε "bandwidth" και για να μην έχει πολλή δουλειά ο serveras, ετοιμάζουμε ένα αρχείο με μόνο μια λέξη μέσα "yes". Ας το ονομάσουμε test.txt, και ας το βάλουμε να ζει στο URL http://www.example.org/test.txt.

Ξεκινάμε από τα εργαλεία μας με το lynx που είναι ένας web browser στην command line. Δεν θέλουμε πολλή φασαρία, γι'αυτό του λέμε να κατεβάζει το αρχείο και να μας "δείχνει" μόνο το source:

/usr/bin/lynx -source http://www.example.org/test.txt
yes
στην έξοδο μας βγάζει το source της "σελίδας" μας, δηλαδή την λέξη "yes". Οπότε ξέρουμε ότι δουλεύει η εντολή μας, το output, όμως, μετά δεν το θέλουμε. Ας το πετάξουμε λοιπόν:
/usr/bin/lynx -source http://www.example.org/test.txt > /dev/null

Αυτό μεταφέρει την έξοδο στο αρχείο /dev/null, το όποιο όμως δεν είναι απλό αρχείο, είναι ένα "device", συγκεκριμένα "τα σκουπίδια", δηλαδή ό,τι του ρίχνουμε το εξαφανίζει. Ό,τι θέλουμε. Μα όταν δεν παίζει, δεν θα θέλαμε να δούμε το "λάθος"; Ναι, και θα το δούμε! Αυτό γιατί το Unix έχει και ειδική έξοδο για λάθη, το STDERR. Αν κάτι δεν παίζει, θα δούμε για παράδειγμα:

Looking up www.example.org                                                        
www.example.org                                                                   
Making HTTP connection to www.example.org                                         
Alert!: Unable to connect to remote host.                                       
                                                                                
lynx: Can't access startfile http://www.example.org/test.txt                    

Και με αυτό είμαστε έτοιμοι, μόνο που δεν θέλουμε να το τρέξουμε μόνο μια φορά. Θέλουμε να τρέχει κάθε μισή ή κάθε μια ώρα, ανάλογα με την εμπιστοσύνη που έχουμε στο μηχάνημα μας :-) Γι'αυτό χρησιμοποιούμε το cron service του Unix. Με crontab -e μπορούμε να γράφουμε στο αρχείο με τα δικά μας "crontabs" μια καινούρια εντολή με χρονική ρύθμιση. Ας την βάλουμε έτσι:

27     *     *       *       *   
/usr/bin/lynx -source http://www.example.org/test.txt > /dev/null
(κανονικά αυτό πρέπει να είναι μια μεγάλη γραμμή, την έκοψα για να μην χαλάσει την σελίδα εδώ).

Το 27 και τα αστεράκια λένε στο cron πότε να τρέχει την εντολή, "όταν τα λεπτά δείχνουν 27", "κάθε ώρα", "κάθε μέρα στον μήνα", "κάθε μήνα", "κάθε μέρα της εβδομάδας". Επειδή "πετάμε" το αποτέλεσμα της εντολής μας, συνήθως δεν συμβαίνει τίποτα. Όταν όμως υπάρχει πρόβλημα, τότε έχουμε "έξοδα λάθους"... και που το βάζει; Το cron μας στέλνει mail! Αυτό το κάνει στον server που είμαστε οπότε υποθέτουμε ότι θα το δούμε και σε περίπτωση που ο άλλος server έχει πρόβλημα. Και αυτό ήτανε, με μια γραμμή σε ένα αρχείο γίνεται όλη η δουλειά.

Posted by betabug at 10:31 | Comments (0) | Trackbacks (0)
ch athens
Life in Athens (Greece) for a foreigner from the other side of the mountains. And with an interest in digital life and the feeling of change in a big city. Multilingual English - German - Greek.
Main blog page
Recent Entries
Best of
Some of the most sought after posts, judging from access logs and search engine queries.

Apple & Macintosh:
Security & Privacy:
Misc technical:
Athens for tourists and visitors:
Life in general:
<< IP Telephony, Here I Come! | Main | Power Day >>
Comments
There are no comments.
Trackbacks
You can trackback to: http://betabug.ch/blogs/ch-athens/465/tbping
There are no trackbacks.
Leave a comment