La pagina Scheduler di un server gestisce i suoi job pianificati: comandi che cron esegue a orari stabiliti, ad esempio ogni minuto, ogni notte o il primo del mese. Usala per lo scheduler di Laravel, per script di pulizia, per report o per qualsiasi altra cosa che debba girare secondo una pianificazione e poi terminare.
Ogni job viene scritto in un file proprio in /etc/cron.d sul server, così i job si possono aggiungere e rimuovere in modo indipendente senza toccare il crontab di nessuno. Le pianificazioni seguono il fuso orario del server, mostrato in cima alla pagina e modificabile nelle impostazioni del server.

Pianificare un job
- Apri il server e scegli Scheduler nella barra laterale.
- Clicca su Pianifica job.
- Inserisci il Comando, ad esempio
php /home/vimonto/example.com/current/artisan schedule:run. - Se vuoi, inserisci un Nome per riconoscere il job nell'elenco.
- Scegli con quale utente gira in Esegui come: l'utente di sistema (
vimontoper impostazione predefinita) oroot. - Scegli Quando viene eseguito (vedi sotto).
- Clicca su Pianifica job.
Il job appare come Aggiunta in corso finché il suo file cron non è stato scritto, poi viene eseguito al successivo orario pianificato.
Il comando gira tramite bash, quindi pipe, && e variabili funzionano così come le scrivi. I caratteri speciali di cron, come %, non vanno preceduti da escape.
Quali frequenze puoi scegliere?
| Frequenza | Espressione cron | Esecuzione |
|---|---|---|
| Ogni minuto | * * * * * |
Ogni minuto. |
| Ogni ora | 0 * * * * |
All'inizio di ogni ora. |
| Ogni notte | 0 0 * * * |
Ogni giorno a mezzanotte. |
| Ogni settimana | 0 0 * * 0 |
Ogni domenica a mezzanotte. |
| Ogni mese | 0 0 1 * * |
Il primo di ogni mese a mezzanotte. |
| All'avvio | @reboot |
Una volta, a ogni avvio del server. |
| Pianificazione personalizzata | la tua | Quello che inserisci in Pianificazione. |
Scrivere un'espressione cron personalizzata
Scegli Pianificazione personalizzata e inserisci cinque campi in Pianificazione: minuto, ora, giorno del mese, mese e giorno della settimana. Ogni campo accetta *, un numero, un intervallo (1-5), un passo (*/15) ed elenchi separati da virgole.
| Espressione | Esecuzione |
|---|---|
*/15 * * * * |
Ogni 15 minuti. |
30 3 * * * |
Ogni notte alle 3:30. |
0 9 * * 1-5 |
Alle 9:00 nei giorni feriali. |
0 */6 * * * |
Ogni sei ore. |
0 2 1,15 * * |
Alle 2:00 il giorno 1 e il giorno 15 del mese. |
Nomi come MON o JAN e scorciatoie come @daily non sono accettati in una pianificazione personalizzata; usa i numeri.
Eseguire lo scheduler di Laravel
Lo scheduler di Laravel richiede un cron job che esegua schedule:run ogni minuto. Il modo più semplice è attivare lo scheduler per il sito nella sua pagina queue e scheduler: Vimonto Deploy crea il job per te, con il percorso e l'utente giusti, e il job compare in questo elenco.
Per aggiungerlo invece a mano, pianifica questo comando Ogni minuto con l'utente di sistema:
php /home/vimonto/example.com/current/artisan schedule:run
Usa la directory current del sito, così il job esegue sempre il codice live. Un job creato così dal sito è contrassegnato con Tramite Scheduler; vedi Job delle funzionalità del sito.
Eseguire subito un job
Apri il menu delle azioni (⋯) di un job e scegli Esegui ora. Il comando viene eseguito subito con l'utente del job, dalla home directory di quell'utente. Il suo output compare nel task nella pagina attività: è il modo più semplice per provare un nuovo job.
Leggere il log
Fai clic su Log accanto a un job per vedere le ultime 300 righe stampate dalle sue esecuzioni pianificate (output standard ed errori insieme), recuperate dal server nel momento in cui fai clic. Ogni esecuzione aggiunge il suo output a /var/log/vimonto/cron-{id}.log, sotto una riga con la data e l'ora in cui è partita, ad esempio --- 2026-10-07T03:30:00+02:00. Un job che non stampa nulla lascia solo quella riga, così vedi comunque che è stato eseguito.
Una volta al giorno, un log più grande di 5 MB viene messo da parte: si conserva un file più vecchio e tutto ciò che è più vecchio viene eliminato, così un job prolisso non può riempire il disco. Il log viene eliminato quando rimuovi il job. L'output di Esegui ora non finisce nel log; lo trovi nel task nella pagina attività.
Quali sono i job predefiniti?
Ogni server viene configurato con due job, contrassegnati come Predefinito:
| Job | Quando | Cosa fa |
|---|---|---|
| Aggiorna Composer | Ogni notte | Aggiorna Composer all'ultima versione. |
| Rimuovi i pacchetti inutilizzati | Ogni settimana | Rimuove i pacchetti e i file di pacchetti in cache di cui il server non ha più bisogno. |
Entrambi girano come root. Puoi modificarli, eseguirli o rimuoverli come qualsiasi altro job.
Modificare o rimuovere un job
Apri il menu delle azioni (⋯) e scegli Modifica per cambiare comando, nome, utente o pianificazione; Salva riscrive il file cron. Scegli Rimuovi per eliminare il job; non verrà più eseguito.
Se la scrittura di un job non riesce, il job mostra Non riuscito; scegli Riprova nel menu delle azioni.
Job delle funzionalità del sito
I job creati da una funzionalità del sito, come lo scheduler di Laravel o Cron reale per WordPress, hanno un badge Tramite …, ad esempio Tramite Scheduler. Qui puoi leggerne il Log ed eseguirli con Esegui ora, ma Modifica, Riprova e Rimuovi non sono disponibili: modificali tramite la funzionalità nell'intestazione del sito, e disattiva la funzionalità per rimuoverne il job.
Sapere quando un job pianificato smette di girare
Cron non ti avvisa quando un job fallisce o smette di girare. Per questo usa un heartbeat: clicca su Aggiungi heartbeat nella pagina monitoring, poi fai chiamare al job l'URL dell'heartbeat quando termina, ad esempio chiudendo il comando con && curl -fsS https://… (l'URL mostrato per l'heartbeat). Se il ping non arriva entro l'intervallo e il periodo di tolleranza che hai impostato, Vimonto Deploy invia un'email all'indirizzo in Notifica a e avvisa i membri dell'organizzazione, con una sola email per persona; vedi chi riceve le notifiche.
Domande frequenti
In quale fuso orario girano i job?
Nel fuso orario del server, mostrato in cima alla pagina Scheduler. Cambialo nelle impostazioni del server; i job seguiranno il nuovo fuso orario.
Perché il mio job non viene eseguito?
Apri il suo Log per vedere cosa hanno stampato le ultime esecuzioni pianificate, oppure clicca su Esegui ora e leggi l'output nella pagina attività. Le cause comuni sono un percorso relativo (usa percorsi completi, oppure fai prima cd nella directory), un comando che richiede un altro utente, o una pianificazione personalizzata diversa da quella che intendevi. Cron usa un PATH ridotto (/usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin e /bin).
Qual è la differenza tra un job pianificato e un processo?
Un job pianificato parte a orari stabiliti e termina quando ha finito. Un processo gira sempre e viene riavviato da Supervisor quando si ferma. Usa un processo per i queue worker e un job pianificato per task come lo scheduler di Laravel.
Un job può girare più spesso di una volta al minuto?
No. L'intervallo minimo di cron è un minuto. Per il lavoro che deve girare di continuo, usa un processo.