1. Perché serve l'automazione?
L'automazione dei compiti è la base delle basi per qualsiasi amministratore di sistema, soprattutto in Linux. Immagina di lavorare senza automazione: ogni mattina entri nel terminale e inserisci lo stesso comando per fare i backup dei tuoi dati, archiviarli, inviarli al server e pulire i vecchi log. Dopo una settimana, questa routine ti farebbe pensare a cambiare lavoro… Ma no, siamo qui per insegnarti come fare della macchina il tuo fedele servo.
La lezione di oggi è pura magia di tempo e attività. Impareremo ad automatizzare i processi a livello di sistema operativo con strumenti incredibili come cron e at. Questi tool salvano un sacco di tempo ed evitano, a volte, una buona dose di stress.
L'automazione è un salvagente per qualsiasi compito ripetitivo. Per esempio, hai uno script che genera un report per il tuo capo. Questo report serve ogni mattina alle 8:00. Invece di alzarti prima per avviare manualmente lo script (e rischiare di restare bloccato con una tazza di caffè e dimenticare di avviarlo), puoi configurare cron per farlo eseguire automaticamente.
cron è uno strumento per attività regolari che si ripetono a intervalli prestabiliti.
at è un'utility per attività una tantum che devono essere eseguite in un momento specifico.
2. Lavorare con cron
Cos'è cron?
cron è un demone (processo di sistema) che funziona in background ed esegue attività programmate a un certo momento. Gli orari per queste attività sono salvati nei cosiddetti crontab — sono file di testo. Ogni utente nel sistema può avere il proprio crontab.
La tua prima attività con cron
Ecco come appare il comando base per lavorare con cron:
crontab -e
Questo comando apre il crontab dell'utente corrente per modificarlo. Puoi aggiungere attività specificando il formato dell'orario.
Sintassi degli orari
Una riga nel crontab consiste di sei campi:
* * * * * COMMAND
- - - - -
| | | | └─ Giorno della settimana (0–7, dove 0 e 7 sono domenica)
| | | └── Mese (1–12)
| | └─── Giorno del mese (1–31)
| └──── Ore (0–23)
└───── Minuti (0–59)
Esempio: esegui echo "Ciao, Linux" ogni giorno a mezzogiorno:
0 12 * * * echo "Ciao, Linux"
Pratica: avviamo una semplice attività
Apri il tuo
crontabper modificarlo:crontab -eAggiungi la riga:
*/5 * * * * echo "Ciao, mondo! L'ora è $(date)" >> ~/cron_test.logQuesta attività aggiungerà una riga con l'ora corrente al file
cron_test.logogni 5 minuti. Salva il file ed esci.Controlla se l'attività è stata avviata:
tail -f ~/cron_test.logDopo 5 minuti dovresti vedere una voce aggiornata nel file.
Visualizzare le attività pianificate
Per controllare le attività correnti:
crontab -l
Rimuovere attività
Per rimuovere tutte le attività da crontab:
crontab -r
Esempi reali di utilizzo di cron
Archiviazione dei file
Supponiamo che tu voglia archiviare i file dalla cartella /var/logs ogni notte alle 3:
Scrivi uno script:
#!/bin/bash tar -czf /backup/logs_$(date +\%Y-\%m-\%d).tar.gz /var/logsImposta un orario nel
crontab:0 3 * * * /path/to/script.sh
E voilà! Non dimenticherai mai più di fare un backup.
Notifica sul carico del sistema
Ad esempio, vuoi ricevere una notifica se il carico della CPU supera l'80%:
Scrivi uno script:
#!/bin/bash LOAD=$(uptime | awk '{print $10}' | sed 's/,//') if (( $(echo "$LOAD > 0.80" | bc -l) )); then echo "Carico CPU elevato: $LOAD" | mail -s "Avviso CPU" tu@example.com fiImposta l'orario:
*/10 * * * * /path/to/cpu_check.sh
3. Lavorare con at
at permette di eseguire un'attività una tantum a un'ora specifica. A differenza di cron, le attività di at non si ripetono. Questo è comodo per attività del tipo "fallo domani alle 9 di mattina".
Un'attività semplice con at
Ecco un esempio di come pianificare un'attività:
echo "echo 'Ciao, Linux!'" | at now + 1 minute
Questo comando avvierà il comando echo 'Ciao, Linux!' tra un minuto.
Puoi specificare un'ora e una data precise:
echo "echo 'Backup completato!'" | at 10:30 AM tomorrow
Gestione delle attività con at
Dopo aver aggiunto un'attività, puoi visualizzare l'elenco delle attività:
atq
Esempio di output:
1 Tue Oct 31 10:30:00 2023 a user
2 Tue Oct 31 11:00:00 2023 a user
Per eliminare un'attività:
atrm <job_id>
Pratica: utilizzare at per le notifiche
Crea un'attività per una notifica tra 2 minuti:
echo "notify-send 'Il tempo è scaduto!'" | at now + 2 minutesControlla l'elenco delle attività:
atqAttendi la comparsa della finestra popup tra 2 minuti.
4. Errori tipici nell'utilizzo di cron e at
Uno dei problemi più comuni è specificare un percorso errato allo script o al comando. Ricorda che cron viene eseguito in un ambiente minimale, quindi potrebbe non conoscere le tue variabili, come PATH. Il modo migliore è usare percorsi assoluti.
Ad esempio, se vuoi eseguire uno script Python:
*/30 * * * * /usr/bin/python3 /path/to/script.py
Assicurati anche che lo script abbia i permessi di esecuzione:
chmod +x /path/to/script.sh
A cosa serve?
Le competenze di automatizzazione sono richieste in quasi tutte le professioni legate all'IT. Puoi usare queste conoscenze per:
- Automatizzare attività di sistema ripetitive.
- Configurare backup periodici.
- Monitorare lo stato dei server.
- Prepararti per colloqui di lavoro, dove spesso si parla di
crone automatizzazione.
Se lavori in DevOps, amministrazione di sistemi o semplicemente vuoi essere più produttivo, capire cron e at ti aiuterà a distinguerti e a risparmiare un sacco di tempo.
Ora sai come far lavorare Linux per te. La prossima volta che qualcuno si lamenterà della routine, sorridi semplicemente, perché tu sei il maestro dell'automatizzazione!
GO TO FULL VERSION