CodeGym /Corsi /Docker SELF /Elaborazione di dati di testo e aggiornamento del sistema...

Elaborazione di dati di testo e aggiornamento del sistema

Docker SELF
Livello 8 , Lezione 6
Disponibile

Elaborazione di dati di testo e aggiornamento del sistema

1. Elaborazione dei dati di testo

Oggi mettiamo insieme tutte queste conoscenze e le applichiamo nella pratica per elaborare i dati di testo e aggiornare il sistema. Scopriremo scenari d'uso reali: dall'analisi dei log di sistema all'automazione dell'installazione e configurazione dei pacchetti.

Compito 1: Trovare errori nel log

Scenario: Immagina di essere un amministratore di sistema e hai bisogno di capire rapidamente cosa succede nel sistema. Per farlo, analizzeremo i log di sistema (/var/log/syslog).

Passo 1: Filtrare per parole chiave

Iniziamo cercando le righe legate agli errori usando grep:

grep "error" /var/log/syslog

Oh, qualcosa abbiamo trovato! Ma miglioriamo. Supponiamo che tu voglia ignorare le maiuscole e minuscole (sia ERROR che error):

grep -i "error" /var/log/syslog

Ora vedrai più corrispondenze. Ma a volte bisogna trovare tutto ciò che non è legato agli errori:

grep -v "error" /var/log/syslog

Passo 2: Semplificare l'output con cut

Supponiamo che ti interessi solo il timestamp e il messaggio. Estrarre le colonne corrispondenti:

grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-

Qui usiamo cut per dividere le righe in base agli spazi -d' ', selezionando le colonne 1, 2, 3 (tempo) e il testo rimanente.

Compito 2: Contare la frequenza degli eventi

Ora vogliamo capire con quale frequenza si verificano gli errori. Combiniamo grep, cut e sort con uniq:

grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c

Questo comando:

  1. Cerca righe con errori usando grep.
  2. Estrae solo le informazioni sulla fonte dell'errore con cut.
  3. Ordina i dati con sort per permettere a uniq di contare il numero di ripetizioni di ogni riga.

Il risultato sarà simile a questo:

  10 systemd
   7 kernel
   5 cron

Gli errori da systemd sono i più frequenti. È ora di trarre conclusioni!


2. Caricamento ed elaborazione di dati esterni

Scenario: Analisi dei dati da una fonte esterna

Supponiamo di dover scaricare un file di testo con dati (ad esempio un file di log) da un web server e analizzarlo. Lo faremo passo dopo passo.

Passo 1: Scaricare il file

Per prima cosa scarichiamo il file usando wget:

wget -O data.log http://example.com/logs/data.log

Il file è stato scaricato e salvato come data.log. In caso di errore durante il download, aggiungiamo la ripresa:

wget -c -O data.log http://example.com/logs/data.log

Se preferisci curl:

curl -o data.log http://example.com/logs/data.log

Passo 2: Ricerca delle informazioni

Ora cerchiamo le righe che contengono uno specifico pattern, ad esempio WARNING:

grep "WARNING" data.log

Passo 3: Formattazione dei dati con awk

Supponiamo che il log contenga tre colonne: data, ora e messaggio. Vogliamo visualizzare solo la data e il messaggio:

awk '{print $1, $3}' data.log

E se dobbiamo filtrare le righe in cui il messaggio contiene la parola error, possiamo aggiungere una condizione:

awk '/error/ {print $1, $3}' data.log

3. Aggiornamento del sistema con apt-get e yum

Ora passiamo a compiti più "di sistema". L'aggiornamento dei pacchetti è un processo vitale per mantenere la sicurezza e la stabilità del sistema. Vediamo come si fa.

Scenario: Aggiornamento del sistema

Passo 1: Aggiornamento della lista dei pacchetti

Per distribuzioni basate su Debian:

sudo apt-get update

Per distribuzioni basate su RedHat:

sudo yum check-update

Passo 2: Installazione degli aggiornamenti

Debian-based:

sudo apt-get upgrade
RedHat-based:
sudo yum update

Passo 3: Installazione di un nuovo pacchetto

Per esempio, per installare l'editor di testo vim:

sudo apt-get install vim
sudo yum install vim

Consiglio utile

Se sai esattamente quale pacchetto vuoi installare, ma non sei sicuro del suo nome, usa apt search o yum search:

apt search nome_pacchetto
yum search nome_pacchetto

4. Compito finale

Compito: Automazione dell'aggiornamento e dell'elaborazione dei dati

  1. Crea uno script bash, che:
    • Aggiorna il sistema;
    • Scarica un file di testo (ad esempio, un log);
    • Analizza questo file per trovare errori;
    • Salva i risultati dell'analisi in un nuovo file.

Ecco un esempio di tale script:

# Passaggio 1: Aggiornamento del sistema
echo "Aggiornamento del sistema..."
sudo apt-get update && sudo apt-get -y upgrade

# Passaggio 2: Scaricare il file
echo "Scarichiamo il file di log..."
wget -O data.log http://example.com/logs/data.log

# Passaggio 3: Analisi del file
echo "Analizziamo il file di log per trovare gli errori..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log

echo "Analisi completata. Risultati salvati in analysis.log"

Salva questo script, ad esempio, come update_and_analyze.sh, imposta i permessi di esecuzione:

chmod +x update_and_analyze.sh

E avvialo:

./update_and_analyze.sh

Attenzione: errori comuni

  • Se vedi un messaggio di "accesso negato", assicurati di eseguire lo script come utente con privilegi sudo.

  • Se wget o curl non sono installati, aggiungi la loro installazione all'inizio dello script:

    sudo apt-get install -y wget
    

A cosa serve in pratica?

Queste competenze ti torneranno utili non solo al lavoro, ma anche nei colloqui. Sapere individuare errori nei log, filtrare i dati e avviare aggiornamenti di sistema è molto apprezzato tra gli amministratori e ingegneri. Gli script permettono di automatizzare le attività, risparmiando tempo e garantendo l'assenza di errori umani.

P.S. Ricorda, nel mondo reale ti troverai di fronte a compiti in cui dovrai combinare comandi, modificare output e configurare automaticamente il sistema. L'esempio di oggi è solo la punta dell'iceberg della tua futura pratica.

1
Опрос
Utility di sistema in Linux,  8 уровень,  6 лекция
недоступен
Utility di sistema in Linux
Utility di sistema in Linux
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION