Attività pianificate con Cron
Automatizzate le attività ricorrenti del server creando e gestendo cron job, così che script e comandi vengano eseguiti agli intervalli stabiliti.
Attività pianificate con Cron è una lezione Linux Server Deployment & SSH Mastery gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Server Deployment & SSH Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.
Perché automatizzare le attività del server?
Le attività manuali su un server possono essere ripetitive e soggette a errori umani. L'automazione consente di risparmiare tempo e garantisce che le attività vengano eseguite in modo coerente.
Immagini di dover eseguire il backup di un database ogni notte o ripulire i vecchi file di log ogni settimana. Farlo manualmente è noioso e facile da dimenticare.
È qui che gli strumenti di pianificazione si rivelano utili. Consentono al server di eseguire automaticamente le attività a orari o intervalli specifici, lasciandoLe più tempo per attività importanti.
Presentazione di Cron: lo scheduler del server
Cron è un'utilità fondamentale di Linux per la pianificazione delle attività. È come un assistente personale per il server, che garantisce l'esecuzione automatica in background di comandi o script a orari prestabiliti.
Queste attività pianificate sono chiamate cron job. Ogni utente del sistema può avere il proprio elenco di cron job, memorizzato in un file speciale chiamato crontab.
Modificare il proprio crontab
Per gestire i propri cron job personali, si utilizza il comando crontab.
- Per modificare il file crontab, digiti:
crontab -e - Per elencare i cron job attuali, digiti:
crontab -l - Per rimuovere tutti i cron job, digiti:
crontab -r(utilizzi il comando con cautela)
Quando esegue crontab -e, il crontab viene aperto nell'editor di testo predefinito, spesso nano o vi.
Sintassi di crontab: i campi temporali
Ogni riga del crontab rappresenta un singolo cron job e segue uno schema specifico. Contiene cinque campi temporali, seguiti dal comando da eseguire.
Il formato è:
minute hour day_of_month month day_of_week command- Minuto: 0-59
- Ora: 0-23 (0 indica mezzanotte)
- Giorno del mese: 1-31
- Mese: 1-12 (oppure Jan-Dec)
- Giorno della settimana: 0-7 (0 o 7 indica domenica, 1 indica lunedì)
Sintassi di crontab: asterischi e intervalli
Non sono sempre necessari numeri esatti. Cron offre caratteri speciali per una maggiore flessibilità:
*(asterisco): corrisponde a ogni possibile valore del campo. Ad esempio,*nel campo dei minuti significa "ogni minuto".-(trattino): specifica un intervallo. Ad esempio,9-17nel campo delle ore significa "dalle 9 alle 17".,(virgola): specifica un elenco di valori. Ad esempio,Mon,Wed,Frio1,3,5per i giorni della settimana./(barra): specifica un intervallo di incremento. Ad esempio,*/5nel campo dei minuti significa "ogni 5 minuti".
Sintassi di crontab: esempi pratici
Esaminiamo alcuni esempi comuni per consolidare la comprensione:
* * * * * /path/to/script.sh
Viene eseguito ogni minuto.0 3 * * * /usr/bin/backup.sh
Viene eseguito ogni giorno alle 3:00.0 9-17 * * 1-5 /usr/local/bin/check_service.py
Viene eseguito ogni ora dalle 9:00 alle 17:00, dal lunedì al venerdì.*/15 * * * * echo "Hello, CoddyKit!"
Viene eseguito ogni 15 minuti.
Ricordi di sostituire /path/to/script.sh con il percorso del comando o dello script effettivo.
Stringhe speciali di crontab
Per le esigenze di pianificazione più comuni, Cron offre stringhe speciali più facili da leggere rispetto alla sintassi a cinque campi:
@reboot: viene eseguito una volta all'avvio.@hourly: viene eseguito una volta all'ora, all'inizio dell'ora.@daily: viene eseguito una volta al giorno, a mezzanotte.@weekly: viene eseguito una volta alla settimana, a mezzanotte di domenica.@monthly: viene eseguito una volta al mese, a mezzanotte del primo giorno del mese.@yearly(o@annually): viene eseguito una volta all'anno, a mezzanotte del primo gennaio.
Sono ideali per le attività semplici e ricorrenti.
Variabili d'ambiente e percorsi
Quando Cron esegue un job, utilizza un insieme molto limitato di variabili d'ambiente. Di conseguenza, i comandi che funzionano nel terminale potrebbero non funzionare in Cron.
Per evitare problemi:
- Utilizzi sempre percorsi assoluti per comandi e script, ad esempio
/usr/bin/phpinvece diphp. - Può definire una variabile
PATHdirettamente nel file crontab, ad esempioPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - In alternativa, imposti le variabili d'ambiente direttamente nello script.
Gestire l'output e i log
Per impostazione predefinita, Cron tenta di inviare tramite e-mail qualsiasi output (stdout e stderr) di un cron job all'utente proprietario del crontab. Se non è configurato alcun sistema di posta elettronica, questo output potrebbe andare perso o riempire i file di log.
È buona prassi reindirizzare esplicitamente l'output:
- Per scartare tutto l'output:
command > /dev/null 2>&1 - Per aggiungere l'output a un file di log:
command >> /var/log/myjob.log 2>&1
La parte 2>&1 reindirizza lo standard error (2) nella stessa destinazione dello standard output (1).
Cron di sistema e crontab degli utenti
Ci siamo concentrati sui crontab degli utenti, gestiti con crontab -e. Sono ideali per le attività dei singoli utenti.
Per le attività a livello di sistema, gli amministratori utilizzano spesso:
/etc/crontab: il crontab principale del sistema, che consente di eseguire le attività come utenti specifici./etc/cron.d/: la directory dei file Cron separati, spesso installati dalle applicazioni./etc/cron.hourly/,/etc/cron.daily/, ecc.: directory in cui vengono inseriti gli script da eseguire a quegli intervalli specifici tramite Cron di sistema.
Queste opzioni a livello di sistema offrono un maggiore controllo per l'automazione dell'intero server.
Verificare le proprie conoscenze su Cron
Ha appreso le basi della sintassi di crontab. Vediamo se riesce a decifrare questo cron job.
Riepilogo: automatizzare con Cron
Ora ha acquisito le nozioni fondamentali per pianificare le attività con Cron!
Ecco gli argomenti trattati:
- Che cos'è Cron: uno scheduler di job basato sul tempo.
- Crontab: il file personale in cui definire i cron job.
- Sintassi: comprendere i 5 campi temporali e i caratteri speciali (
*,-,,,/). - Stringhe speciali: scorciatoie come
@hourlye@reboot. - Buone prassi: utilizzare percorsi assoluti e gestire l'output.
Con Cron può automatizzare le attività ripetitive, assicurando che il server funzioni in modo fluido ed efficiente!
Impara Linux Server Deployment & SSH Mastery con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 12
- Lezioni
- 48
Domande Frequenti
La lezione «Attività pianificate con Cron» è gratuita?
Sì — il testo completo di «Attività pianificate con Cron» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Server Deployment & SSH Mastery, passa a CoddyKit PRO. Il corso Linux Server Deployment & SSH Mastery include 4 lezioni in totale.
Cosa imparerò in «Attività pianificate con Cron»?
Automatizzate le attività ricorrenti del server creando e gestendo cron job, così che script e comandi vengano eseguiti agli intervalli stabiliti. Eserciti Linux Server Deployment & SSH Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Linux Server Deployment & SSH Mastery?
Non è richiesta alcuna esperienza precedente. Linux Server Deployment & SSH Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Attività pianificate con Cron»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Linux Server Deployment & SSH Mastery?
Sì. Ogni lezione Linux Server Deployment & SSH Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Gestione di utenti e gruppi
- Monitoraggio dei processi di sistema
- Attività pianificate con Cron
- Gestire i servizi di sistema con systemd