L’automazione delle attività di routine è essenziale in qualsiasi flusso di lavoro di amministrazione di sistema o di sviluppo web. I job di Cron forniscono un potente job scheduler basato sul tempo nei sistemi operativi Unix-like, consentendo di eseguire automaticamente script o comandi a intervalli pianificati.
Un cron job è un’attività pianificata definita nella crontab (tabella cron) del sistema che esegue comandi o script a orari o intervalli specifici. Cron è molto utilizzato perché è:
Leggero
Altamente personalizzabile
Integrato nella maggior parte delle distribuzioni Linux
Backup giornalieri o settimanali del database
Esecuzione di script PHP/Python
Rotazione dei log e pulizia dei file temporanei
Invio di e-mail programmate
Aggiornamento delle cache dei dati o sincronizzazione dei file
Per modificare il crontab del vostro utente (senza accesso root):
Ogni cron job utilizza il seguente formato:
Supponiamo di voler eseguire uno script Python personalizzato. Per prima cosa, create il file:
Esempio di script:
#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)
Rendere lo script eseguibile:
Modificare il crontab e aggiungere:
Questo:
Esegue lo script ogni giorno all’1:00 AM
Registra l’output in /var/log/cleanup.log
Disattivare temporaneamente una riga commentandola con #.
Per rimuovere tutti i lavori:
I cron job personalizzati sono un potente strumento di automazione, manutenzione e affidabilità. Che si tratti della gestione di una VPS personale, dell’implementazione di script di backend o dell’esecuzione di carichi di lavoro di produzione, la padronanza di cron consente di controllare quando e come vengono eseguite le attività, senza alcuno sforzo.