Ricerca nel sito web

Serie RHCSA: gestione dei pacchetti Yum, automazione delle attività con cron e monitoraggio dei registri di sistema - Parte 10


In questo articolo esamineremo come installare, aggiornare e rimuovere i pacchetti in Red Hat Enterprise Linux 7. Tratteremo anche come automatizzare le attività utilizzando cron e finiremo questa guida spiegando come individuare e interpretare i file di registro di sistema con l'obiettivo di insegnarti perché tutte queste sono competenze essenziali per ogni amministratore di sistema.

Gestione dei pacchetti tramite Yum

Per installare un pacchetto insieme a tutte le sue dipendenze che non sono già installate, utilizzerai:


yum -y install package_name(s)

Dove nome_pacchetto/i rappresenta almeno un nome di pacchetto reale.

Ad esempio, per installare httpd e mlocate (in quest'ordine), digitare.


yum -y install httpd mlocate

Nota: la lettera y nell'esempio sopra ignora le richieste di conferma che yum presenta prima di eseguire il download e l'installazione effettivi dei programmi richiesti. Puoi lasciarlo fuori se vuoi.

Per impostazione predefinita, yum installerà il pacchetto con l'architettura che corrisponde all'architettura del sistema operativo, a meno che non venga sovrascritto aggiungendo l'architettura del pacchetto al suo nome.

Ad esempio, su un sistema a 64 bit, yum install package installerà la versione x86_64 del pacchetto, mentre yum install package.x86 (se disponibile) installerà quello a 32 bit.

Ci saranno momenti in cui desideri installare un pacchetto ma non ne conosci il nome esatto. Le opzioni cerca tutto o cerca possono cercare nei repository attualmente abilitati una determinata parola chiave rispettivamente nel nome del pacchetto e/o anche nella sua descrizione.

Per esempio,


yum search log

cercherà nei repository installati i pacchetti con la parola log nei nomi e nei riepiloghi, mentre


yum search all log

cercherà la stessa parola chiave anche nella descrizione del pacchetto e nei campi URL.

Una volta che la ricerca restituisce un elenco di pacchetti, potresti voler visualizzare ulteriori informazioni su alcuni di essi prima dell'installazione. È allora che l'opzione info tornerà utile:


yum info logwatch

Puoi controllare regolarmente gli aggiornamenti con il seguente comando:


yum check-update

Il comando precedente restituirà tutti i pacchetti installati per i quali è disponibile un aggiornamento. Nell'esempio mostrato nell'immagine seguente, solo rhel-7-server-rpms ha un aggiornamento disponibile:

Puoi quindi aggiornare quel pacchetto da solo con,


yum update rhel-7-server-rpms

Se sono presenti più pacchetti che possono essere aggiornati, yum update li aggiornerà tutti contemporaneamente.

Ora cosa succede quando conosci il nome di un eseguibile, come ps2pdf, ma non sai quale pacchetto lo fornisce? Puoi scoprirlo con yum whatprovides “*/[executable] ”:


yum whatprovides “*/ps2pdf”

Ora, quando si tratta di rimuovere un pacchetto, puoi farlo con yum rimuovi pacchetto. Facile, eh? Ciò dimostra che yum è un gestore di pacchetti completo e potente.


yum remove httpd

Leggi anche: 20 comandi Yum per gestire la gestione dei pacchetti RHEL 7

Buon vecchio numero di giri normale

RPM (noto anche come RPM Package Manager o originariamente RedHat Package Manager) può essere utilizzato anche per installare o aggiornare i pacchetti quando sono disponibili in forma autonoma Pacchetti .rpm.

Viene spesso utilizzato con i flag -Uvh per indicare che dovrebbe installare il pacchetto se non è già presente o tentare di aggiornarlo se è installato (-U), producendo un output dettagliato (-v) e una barra di avanzamento con hash (-h) mentre l'operazione viene eseguita. Per esempio,


rpm -Uvh package.rpm

Un altro uso tipico di rpm è produrre un elenco dei pacchetti attualmente installati con il codice>rpm -qa (abbreviazione di query all):


rpm -qa

Leggi anche: Comandi 20 RPM per installare pacchetti in RHEL 7

Pianificazione delle attività utilizzando Cron

Linux e altri sistemi operativi simili a Unix includono uno strumento chiamato cron che consente di pianificare attività (ad esempio comandi o script di shell) da eseguire su base periodica. Cron controlla ogni minuto la directory /var/spool/cron per i file che prendono il nome dagli account in /etc/passwd.

Quando si eseguono i comandi, qualsiasi output viene inviato via email al proprietario del crontab (o all'utente specificato nella variabile d'ambiente MAILTO nel file /etc/crontab forte>, se esiste).

I file Crontab (creati digitando crontab -e e premendo Invio) hanno il seguente formato:

Pertanto, se vogliamo aggiornare il database dei file locali (utilizzato da individua per trovare file per nome o modello) ogni secondo giorno del mese alle 2:15, dobbiamo aggiungere quanto segue Voce crontab:


15 02 2 * * /bin/updatedb

La voce crontab sopra riporta: "Esegui /bin/updatedb il secondo giorno del mese, ogni mese dell'anno, indipendentemente dal giorno della settimana, alle 2:15". Come sicuramente avrai già intuito, il simbolo della stella viene utilizzato come carattere jolly.

Dopo aver aggiunto un processo cron, puoi vedere che un file chiamato root è stato aggiunto all'interno di /var/spool/cron, come accennato in precedenza. Quel file elenca tutte le attività che il demone crond dovrebbe eseguire:


ls -l /var/spool/cron

Nell'immagine sopra, il crontab dell'utente corrente può essere visualizzato utilizzando cat /var/spool/cron/root o,


crontab -l

Se devi eseguire un'attività in modo più dettagliato (ad esempio, due volte al giorno o tre volte al mese), anche cron può aiutarti a farlo.

Ad esempio, per eseguire /my/script il primo e il 15 di ogni mese e inviare qualsiasi output a /dev/null, puoi aggiungi due voci crontab come segue:


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

Ma affinché l'attività sia più semplice da gestire, puoi combinare entrambe le voci in una:


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

Seguendo l'esempio precedente, possiamo eseguire /my/other/script all'1:30 del primo giorno del mese ogni tre mesi:


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

Ma quando devi ripetere una determinata attività ogni “x” minuti, ore, giorni o mesi, puoi dividere la posizione corretta per la frequenza desiderata. La seguente voce crontab ha esattamente lo stesso significato della precedente:


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

O forse devi eseguire un determinato lavoro su una frequenza fissa o dopo l'avvio del sistema, ad esempio. Puoi utilizzare una delle seguenti stringhe invece dei cinque campi per indicare l'ora esatta in cui desideri che venga eseguito il lavoro:


@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 * * * *.

Leggi anche: 11 comandi per pianificare i lavori Cron in RHEL 7

Individuazione e controllo dei registri

I log di sistema si trovano (e ruotano) all'interno della directory /var/log. Secondo il Linux Filesystem Hierarchy Standard, questa directory contiene vari file di registro, che vengono scritti in essa o in una sottodirectory appropriata (come audit, httpd o samba nell'immagine seguente) dai demoni corrispondenti durante il funzionamento del sistema:


ls /var/log

Altri log interessanti sono dmesg (contiene tutti i messaggi dal buffer dell'anello del kernel), secure (registra i tentativi di connessione che richiedono l'autenticazione dell'utente), message (messaggi a livello di sistema) e wtmp (registrazioni di tutti gli accessi e disconnessioni degli utenti).

I registri sono molto importanti in quanto ti consentono di avere un'idea di cosa sta succedendo in ogni momento nel tuo sistema e cosa è successo in passato. Rappresentano uno strumento inestimabile per la risoluzione dei problemi e il monitoraggio di un server Linux, e quindi vengono spesso utilizzati con il comando tail -f per visualizzare gli eventi, in tempo reale, mentre accadono e vengono registrati in un registro.

Ad esempio, se desideri visualizzare eventi correlati al kernel, digita il seguente comando:


tail -f /var/log/dmesg

Lo stesso se desideri visualizzare l'accesso al tuo server web:


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

Riepilogo

Se sai come gestire in modo efficiente i pacchetti, pianificare le attività e dove cercare informazioni sul funzionamento attuale e passato del tuo sistema, puoi stare certo che non incontrerai sorprese molto spesso. Spero che questo articolo ti abbia aiutato ad apprendere o aggiornare le tue conoscenze su queste abilità di base.

Non esitate a scriverci utilizzando il modulo di contatto sottostante se avete domande o commenti.