RHCSA Series: Yum Package Management, Automating Tasks with Cron and Monitoring System Logs - Part 10


Σε αυτό το άρθρο θα εξετάσουμε τον τρόπο εγκατάστασης, ενημέρωσης και κατάργησης πακέτων στο Red Hat Enterprise Linux 7. Θα καλύψουμε επίσης τον τρόπο αυτοματοποίησης εργασιών χρησιμοποιώντας το cron και θα ολοκληρώσουμε αυτόν τον οδηγό εξηγώντας πώς να εντοπίζετε και να ερμηνεύετε αρχεία αρχείων καταγραφής συστήματος με επίκεντρο να σας μάθουμε γιατί όλες αυτές είναι βασικές δεξιότητες για κάθε διαχειριστή συστήματος.

Διαχείριση πακέτων μέσω Yum

Για να εγκαταστήσετε ένα πακέτο μαζί με όλες τις εξαρτήσεις του που δεν είναι ήδη εγκατεστημένες, θα χρησιμοποιήσετε:


yum -y install package_name(s)

Όπου τα όνομα_πακέτου αντιπροσωπεύουν τουλάχιστον ένα πραγματικό όνομα πακέτου.

Για παράδειγμα, για να εγκαταστήσετε τα httpd και mlocate (με αυτή τη σειρά), πληκτρολογήστε.


yum -y install httpd mlocate

Σημείωση: ότι το γράμμα y στο παραπάνω παράδειγμα παρακάμπτει τις προτροπές επιβεβαίωσης που παρουσιάζει το yum πριν από την εκτέλεση της πραγματικής λήψης και εγκατάστασης των προγραμμάτων που ζητήθηκαν. Μπορείτε να το αφήσετε έξω αν θέλετε.

Από προεπιλογή, το yum θα εγκαταστήσει το πακέτο με την αρχιτεκτονική που ταιριάζει με την αρχιτεκτονική του λειτουργικού συστήματος, εκτός εάν παρακαμφθεί με την προσθήκη της αρχιτεκτονικής του πακέτου στο όνομά του.

Για παράδειγμα, σε ένα σύστημα 64 bit, το yum install package θα εγκαταστήσει την έκδοση x86_64 του πακέτου, ενώ το yum install package.x86 (εάν υπάρχει) θα εγκαταστήσει το 32-bit.

Θα υπάρξουν φορές που θέλετε να εγκαταστήσετε ένα πακέτο αλλά δεν γνωρίζετε το ακριβές όνομά του. Οι επιλογές αναζήτηση σε όλα ή αναζήτηση μπορούν να πραγματοποιήσουν αναζήτηση στα ενεργά αποθετήρια για μια συγκεκριμένη λέξη-κλειδί στο όνομα του πακέτου ή/και στην περιγραφή του, αντίστοιχα.

Για παράδειγμα,


yum search log

θα πραγματοποιήσει αναζήτηση στα εγκατεστημένα αποθετήρια για πακέτα με τη λέξη log στα ονόματα και τις περιλήψεις τους, ενώ


yum search all log

θα αναζητήσει την ίδια λέξη-κλειδί στα πεδία περιγραφής πακέτου και url επίσης.

Μόλις η αναζήτηση επιστρέψει μια λίστα πακέτων, μπορεί να θέλετε να εμφανίσετε περισσότερες πληροφορίες σχετικά με ορισμένα από αυτά πριν από την εγκατάσταση. Τότε θα είναι χρήσιμη η επιλογή πληροφορίες:


yum info logwatch

Μπορείτε να ελέγχετε τακτικά για ενημερώσεις με την ακόλουθη εντολή:


yum check-update

Η παραπάνω εντολή θα επιστρέψει όλα τα εγκατεστημένα πακέτα για τα οποία υπάρχει διαθέσιμη ενημέρωση. Στο παράδειγμα που φαίνεται στην παρακάτω εικόνα, μόνο το rhel-7-server-rpms έχει διαθέσιμη ενημέρωση:

Στη συνέχεια, μπορείτε να ενημερώσετε αυτό το πακέτο μόνοι σας με


yum update rhel-7-server-rpms

Εάν υπάρχουν πολλά πακέτα που μπορούν να ενημερωθούν, το yum update θα τα ενημερώσει όλα ταυτόχρονα.

Τι συμβαίνει τώρα όταν γνωρίζετε το όνομα ενός εκτελέσιμου αρχείου, όπως το ps2pdf, αλλά δεν ξέρετε ποιο πακέτο το παρέχει; Μπορείτε να μάθετε με το yum whatprovides "*/[εκτελέσιμο] ":


yum whatprovides “*/ps2pdf”

Τώρα, όταν πρόκειται για την κατάργηση ενός πακέτου, μπορείτε να το κάνετε με το yum remove πακέτο. Εύκολο, ε; Αυτό δείχνει ότι ο yum είναι ένας πλήρης και ισχυρός διαχειριστής πακέτων.


yum remove httpd

Διαβάστε επίσης: 20 εντολές Yum για τη διαχείριση της διαχείρισης πακέτων RHEL 7

Παλιό καλό απλό RPM

Το RPM (γνωστός και ως RPM Package Manager, ή αρχικά RedHat Package Manager) μπορεί επίσης να χρησιμοποιηθεί για την εγκατάσταση ή την ενημέρωση πακέτων όταν αυτά έχουν τη μορφή αυτόνομων πακέτα .rpm.

Συχνά χρησιμοποιείται με τις σημαίες -Uvh για να υποδείξει ότι θα πρέπει να εγκαταστήσει το πακέτο εάν δεν υπάρχει ήδη ή να προσπαθήσει να το ενημερώσει εάν είναι εγκατεστημένο (-U), παράγοντας μια αναλυτική έξοδος (-v) και μια γραμμή προόδου με σημάδια κατακερματισμού (-h) ενώ εκτελείται η λειτουργία. Για παράδειγμα,


rpm -Uvh package.rpm

Μια άλλη τυπική χρήση του rpm είναι η δημιουργία μιας λίστας με εγκατεστημένα πακέτα μεrpm -qa (συντομογραφία για το ερώτημα όλων):


rpm -qa

Διαβάστε επίσης: Εντολές 20 RPM για εγκατάσταση πακέτων στο RHEL 7

Προγραμματισμός εργασιών με χρήση του Cron

Το Linux και άλλα λειτουργικά συστήματα παρόμοια με το Unix περιλαμβάνουν ένα εργαλείο που ονομάζεται cron που σας επιτρέπει να προγραμματίζετε εργασίες (π.χ. εντολές ή σενάρια φλοιού) ώστε να εκτελούνται σε περιοδική βάση. Το Cron ελέγχει κάθε λεπτό τον κατάλογο /var/spool/cron για αρχεία που ονομάζονται από λογαριασμούς στο /etc/passwd.

Κατά την εκτέλεση εντολών, οποιαδήποτε έξοδος ταχυδρομείται στον κάτοχο του crontab (ή στον χρήστη που καθορίζεται στη μεταβλητή περιβάλλοντος MAILTO στο /etc/crontab ισχυρό>, αν υπάρχει).

Τα αρχεία Crontab (τα οποία δημιουργούνται πληκτρολογώντας crontab -e και πατώντας Enter) έχουν την ακόλουθη μορφή:

Επομένως, εάν θέλουμε να ενημερώνουμε την τοπική βάση δεδομένων αρχείων (η οποία χρησιμοποιείται από τον εντοπισμό για την εύρεση αρχείων με όνομα ή μοτίβο) κάθε δεύτερη ημέρα του μήνα στις 2:15 π.μ., πρέπει να προσθέσουμε τα εξής Καταχώριση crontab:


15 02 2 * * /bin/updatedb

Η παραπάνω καταχώριση στο κρόντο λέει, «Εκτέλεση /bin/updatedb τη δεύτερη ημέρα του μήνα, κάθε μήνα του έτους, ανεξάρτητα από την ημέρα της εβδομάδας, στις 2:15 π.μ. ». Όπως είμαι βέβαιος ότι έχετε ήδη μαντέψει, το σύμβολο του αστεριού χρησιμοποιείται ως χαρακτήρας μπαλαντέρ.

Μετά την προσθήκη μιας εργασίας cron, μπορείτε να δείτε ότι ένα αρχείο με το όνομα root προστέθηκε στο /var/spool/cron, όπως αναφέραμε προηγουμένως. Αυτό το αρχείο παραθέτει όλες τις εργασίες που πρέπει να εκτελέσει ο δαίμονας crond:


ls -l /var/spool/cron

Στην παραπάνω εικόνα, το crontab του τρέχοντος χρήστη μπορεί να εμφανιστεί είτε χρησιμοποιώντας cat /var/spool/cron/root είτε


crontab -l

Εάν πρέπει να εκτελέσετε μια εργασία σε πιο λεπτομερή βάση (για παράδειγμα, δύο φορές την ημέρα ή τρεις φορές κάθε μήνα), το cron μπορεί επίσης να σας βοηθήσει να το κάνετε αυτό.

Για παράδειγμα, για να εκτελέσετε το /my/script την 1η και τη 15η κάθε μήνα και να στείλετε οποιαδήποτε έξοδο στη διεύθυνση /dev/null, μπορείτε προσθέστε δύο καταχωρήσεις crontab ως εξής:


01 00 1 * * /myscript > /dev/null 2>&1
01 00 15 * * /my/script > /dev/null 2>&1

Αλλά για να είναι ευκολότερη η διατήρηση της εργασίας, μπορείτε να συνδυάσετε και τις δύο καταχωρήσεις σε μία:


01 00 1,15 * *  /my/script > /dev/null 2>&1

Ακολουθώντας το προηγούμενο παράδειγμα, μπορούμε να εκτελούμε το /my/other/script στη 1:30 π.μ. την πρώτη ημέρα του μήνα κάθε τρεις μήνες:


30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1

Αλλά όταν πρέπει να επαναλαμβάνετε μια συγκεκριμένη εργασία κάθε «x» λεπτά, ώρες, ημέρες ή μήνες, μπορείτε να διαιρέσετε τη σωστή θέση με την επιθυμητή συχνότητα. Η ακόλουθη καταχώριση crontab έχει την ίδια ακριβώς έννοια με την προηγούμενη:


30 01 1 */3 * /my/other/script > /dev/null 2>&1

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


@reboot    	Run when the system boots.
@yearly    	Run once a year, same as 00 00 1 1 *.
@monthly   	Run once a month, same as 00 00 1 * *.
@weekly    	Run once a week, same as 00 00 * * 0.
@daily     	Run once a day, same as 00 00 * * *.
@hourly    	Run once an hour, same as 00 * * * *.

Διαβάστε επίσης: 11 εντολές για τον προγραμματισμό εργασιών Cron στο RHEL 7

Εντοπισμός και έλεγχος αρχείων καταγραφής

Τα αρχεία καταγραφής συστήματος βρίσκονται (και περιστρέφονται) μέσα στον κατάλογο /var/log. Σύμφωνα με το πρότυπο ιεραρχίας του συστήματος αρχείων Linux, αυτός ο κατάλογος περιέχει διάφορα αρχεία καταγραφής, τα οποία είναι γραμμένα σε αυτόν ή έναν κατάλληλο υποκατάλογο (όπως audit, httpd ή samba στην παρακάτω εικόνα) από τους αντίστοιχους δαίμονες κατά τη λειτουργία του συστήματος:


ls /var/log

Άλλα ενδιαφέροντα αρχεία καταγραφής είναι το dmesg (περιέχει όλα τα μηνύματα από την προσωρινή μνήμη δακτυλίου του πυρήνα), το ασφαλές (προσπάθειες σύνδεσης αρχείων καταγραφής που απαιτούν έλεγχο ταυτότητας χρήστη), τα μηνύματα (μηνύματα σε όλο το σύστημα) και το wtmp (εγγραφές όλων των συνδέσεων και αποσύνδεσης χρηστών).

Τα αρχεία καταγραφής είναι πολύ σημαντικά καθώς σας επιτρέπουν να έχετε μια γεύση του τι συμβαίνει ανά πάσα στιγμή στο σύστημά σας και τι έχει συμβεί στο παρελθόν. Αντιπροσωπεύουν ένα ανεκτίμητο εργαλείο για την αντιμετώπιση προβλημάτων και την παρακολούθηση ενός διακομιστή Linux, και επομένως χρησιμοποιούνται συχνά με την εντολή tail -f για την εμφάνιση συμβάντων, σε πραγματικό χρόνο, όπως συμβαίνουν και καταγράφονται σε ένα αρχείο καταγραφής.

Για παράδειγμα, εάν θέλετε να εμφανίσετε συμβάντα σχετικά με τον πυρήνα, πληκτρολογήστε την ακόλουθη εντολή:


tail -f /var/log/dmesg

Το ίδιο εάν θέλετε να δείτε την πρόσβαση στον διακομιστή ιστού σας:


tail -f /var/log/httpd/access.log

Περίληψη

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

Μη διστάσετε να μας στείλετε μια γραμμή χρησιμοποιώντας την παρακάτω φόρμα επικοινωνίας εάν έχετε οποιεσδήποτε ερωτήσεις ή σχόλια.