Documentazione
Avvio rapido + descrizione di ogni funzione per ogni sezione e dispositivo (in continuo aggiornamento)
Attività pianificate (Cron)
Questo documento spiega come gestire le attività pianificate sul server di destinazione.
Prima di tutto: cos'è Cron
Cron è lo strumento di «pianificazione temporale» integrato in Linux. Puoi fargli «eseguire il backup del database ogni notte alle 3», «pulire i log ogni ora», «riavviare un servizio ogni lunedì»: l'esecuzione parte da sola all'orario stabilito, senza che nessuno debba controllare.
Panoramica delle funzionalità
Visualizzare, aggiungere ed eliminare le attività pianificate Cron sul server di destinazione.
Scenari d'uso
- Backup periodico del database, pulizia dei log
- Esecuzione periodica di script di monitoraggio
- Riavvio periodico di servizi, aggiornamento dei certificati
Come si usa
Entra nel «Pannello di gestione di sistema → Attività pianificate» di un server e vedrai tutte le attività Cron attualmente presenti su quel server.
Aggiungere un'attività
Compila l'espressione Cron e il comando da eseguire:
| Campo | Descrizione |
|---|---|
| Espressione temporale | a 5 segmenti, come 0 3 * * * (ogni notte alle 3) |
| Comando | il comando shell da eseguire |
Formato dell'espressione Cron (minuto ora giorno mese settimana):
* * * * * comando │ │ │ │ │ │ │ │ │ └── giorno della settimana (0-7, 0/7=domenica) │ │ │ └──── mese (1-12) │ │ └────── giorno del mese (1-31) │ └──────── ora (0-23) └────────── minuto (0-59)
Esempi comuni:
| Espressione | Significato |
|---|---|
*/5 * * * * | ogni 5 minuti |
0 * * * * | ogni ora |
0 3 * * * | ogni notte alle 3 |
0 3 * * 1 | ogni lunedì alle 3 del mattino |
0 3 1 * * | il 1° di ogni mese alle 3 del mattino |
0 3 * * 0 | ogni domenica alle 3 del mattino |
30 2 * * * | ogni notte alle 2:30 |
Esempi di comandi utili:
# Backup del database ogni notte alle 3 (esempio) 0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<password>' nome-database > /opt/backup/db-$(date +\%F).sql # Pulizia dei file temporanei ogni 6 ore 0 */6 * * * find /tmp -type f -mtime +7 -delete # Riavvio di un servizio ogni lunedì alle 4 del mattino 0 4 * * 1 systemctl restart my-app
Avvertenze
1. Le attività Cron vengono eseguite con l'identità dell'utente corrente del server di destinazione: assicurati che quell'utente abbia i permessi per eseguire il comando.
2. Nei comandi conviene usare percorsi assoluti (Cron ha poche variabili d'ambiente, con percorsi relativi il programma potrebbe non essere trovato).
3. Se nel comando usi % devi fare l'escape con \% (Cron tratta % come carattere speciale).
4. L'eliminazione di un'attività Cron ha effetto immediato.
5. Modificare il Cron di sistema (/etc/crontab) può richiedere operazioni fuori dal pannello: per impostazione predefinita il pannello gestisce il crontab -l dell'utente corrente.