Day 3 Keynote: Made Here Together (Cloud Next '18)
Sommario:
- Cos'è il file Crontab
- Sintassi e operatori di Crontab
- File Crontab a livello di sistema
- Macro predefinite
- Comando Crontab di Linux
- Variabili di Crontab
- Restrizioni Crontab
- Cron Jobs Esempi
- Conclusione
Cron è un demone di pianificazione che esegue attività a intervalli specifici. Queste attività sono chiamate cron job e sono principalmente utilizzate per automatizzare la manutenzione o l'amministrazione del sistema.
Ad esempio, è possibile impostare un processo cron per automatizzare attività ripetitive come il backup di database o dati, l'aggiornamento del sistema con le ultime patch di sicurezza, il controllo dell'utilizzo dello spazio su disco, l'invio di e-mail e così via. Alcune applicazioni, come Drupal o Magento, richiedono cron job per eseguire determinate attività.
È possibile programmare l'esecuzione cron dei lavori per minuto, ora, giorno del mese, mese, giorno della settimana o qualsiasi combinazione di questi.
Cos'è il file Crontab
Crontab (cron table) è un file di testo che specifica la pianificazione dei lavori cron. Esistono due tipi di file crontab. I file crontab a livello di sistema e i file crontab di singoli utenti.
I file crontab degli utenti vengono archiviati in base al nome dell'utente e la loro posizione varia in base al sistema operativo. Nel sistema basato su Red Hat come CentOS, i file crontab sono memorizzati nella directory
/var/spool/cron
mentre su Debian e Ubuntu i file sono memorizzati nella directory
/var/spool/cron/crontabs
.
Sebbene sia possibile modificare manualmente i file crontab dell'utente, si consiglia di utilizzare il comando
crontab
.
/etc/crontab
e i file all'interno della directory
/etc/cron.d
sono file crontab a livello di sistema che possono essere modificati solo dagli amministratori di sistema.
Nella maggior parte delle distribuzioni Linux puoi anche inserire degli script nelle directory
/etc/cron.{hourly, daily, weekly, monthly}
e gli script verranno eseguiti ogni
hour/day/week/month
.
Sintassi e operatori di Crontab
Ogni riga nel file crontab dell'utente contiene sei campi separati da uno spazio seguito dal comando da eseguire.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
I primi cinque campi possono contenere uno o più valori, separati da una virgola o da un intervallo di valori separati da un trattino.
-
*
-L'operatore asterisco indica qualsiasi valore o sempre. Se hai il simbolo asterisco nel campo Ora, significa che l'attività verrà eseguita ogni ora.,
-L'operatore virgola consente di specificare un elenco di valori per la ripetizione. Ad esempio, se nel campo Ora sono presenti1, 3, 5
, l'attività verrà eseguita all'1: 00, 3 e 5.-
operatore trattino consente di specificare un intervallo di valori. Se hai1-5
nel campo Giorno della settimana, l'attività verrà eseguita ogni giorno della settimana (dal lunedì al venerdì)./
-L'operatore barra consente di specificare valori che verranno ripetuti in un determinato intervallo tra di loro. Ad esempio, se hai*/4
nel campo Ora, significa che l'azione verrà eseguita ogni quattro ore. È lo stesso che specificare0, 4, 8, 12, 16, 20
. Invece dell'asterisco prima dell'operatore barra, puoi anche usare un intervallo di valori,1-30/10
significa lo stesso di1, 11, 21
.
File Crontab a livello di sistema
La sintassi dei file crontab a livello di sistema è leggermente diversa rispetto ai crontab dell'utente. Contiene un campo utente obbligatorio aggiuntivo che specifica quale utente eseguirà il processo cron.
Esistono diverse macro di pianificazione Cron specifiche utilizzate per specificare intervalli comuni. È possibile utilizzare queste scorciatoie al posto della specifica della data a cinque colonne. Il comando crontab consente di installare o aprire un file crontab per la modifica. È possibile utilizzare il comando crontab per visualizzare, aggiungere, rimuovere o modificare i lavori cron utilizzando le seguenti opzioni: Il comando crontab apre il file crontab utilizzando l'editor specificato dalle variabili di ambiente
Il demone cron imposta automaticamente diverse variabili d'ambiente. Gli amministratori di sistema possono controllare quali utenti hanno accesso al comando
Di default esiste solo il file
Se il file
Se nessuno dei file esiste, solo gli utenti con privilegi di amministratore possono usare il comando
Di seguito sono riportati alcuni esempi di cron job che ti mostreranno come pianificare un'attività da eseguire su periodi di tempo diversi. Esegui un comando alle 15:00 tutti i giorni dal lunedì al venerdì: Esegui uno script ogni 5 minuti e reindirizza l'output standard su
Esegui due comandi ogni lunedì alle 15:00 (usa l'operatore
Esegui uno script PHP ogni 2 minuti e scrivi l'output in un file: Esegui uno script ogni giorno, ogni ora, ogni ora, dalle 8:00 alle 16:00: Esegui uno script il primo lunedì di ogni mese, alle 7 del mattino Esegui la sceneggiatura alle 21:15, il 1 ° e il 15 di ogni mese: Imposta le variabili
Hai imparato come creare processi cron e pianificare attività in una data e ora specifiche. Sentiti libero di lasciare un commento in caso di domande.
* * * * * command(s)
* * * * * command(s)
Macro predefinite
@yearly
(o
@annually
): esegue l'attività specificata una volta all'anno a mezzanotte (12:00) del 1 ° gennaio. Equivalente a
0 0 1 1 *
.
@monthly
: esegue l'attività specificata una volta al mese a mezzanotte del primo giorno del mese. Equivalente a
0 0 1 * *
.
@weekly
: esegui l'attività specificata una volta alla settimana a mezzanotte di domenica. Equivalente a
0 0 * * 0
.
@daily
: esegue l'attività specificata una volta al giorno a mezzanotte. Equivalente a
0 0 * * *
.
@hourly
- Esegue l'attività specificata una volta all'inizio dell'ora. Equivalente a
0 * * * *
.
@reboot
: esegue l'attività specificata all'avvio del sistema (tempo di avvio).Comando Crontab di Linux
crontab -e
- Modifica il file crontab o creane uno se non esiste già.
crontab -l
- Visualizza il contenuto del file crontab.
crontab -r
- Rimuove il file crontab corrente.
crontab -i
- Rimuovere il file crontab corrente con un prompt prima della rimozione.
crontab -u
VISUAL
o
EDITOR
.Variabili di Crontab
PATH=/usr/bin:/bin
. Se il comando che stai chiamando è presente nel percorso specificato cron, puoi utilizzare il percorso assoluto del comando o modificare la variabile cron
$PATH
. Non puoi aggiungere implicitamente
:$PATH
come faresti con uno script normale. La shell predefinita è impostata su
/bin/sh
. È possibile impostare una shell diversa modificando la variabile
SHELL
invoca il comando dalla home directory dell'utente. La variabile
HOME
può essere sovrascritta dalle impostazioni nel crontab. La notifica e-mail viene inviata al proprietario del crontab. Per sovrascrivere il comportamento predefinito, è possibile utilizzare la variabile di ambiente
MAILTO
con un elenco (separato da virgole) di tutti gli indirizzi e-mail che si desidera ricevere le notifiche e-mail. Se
MAILTO
è definito ma vuoto (
MAILTO=""
), la posta non viene inviata.Restrizioni Crontab
crontab
usando i file
/etc/cron.deny
e
/etc/cron.allow
. I file sono costituiti da un elenco di nomi utente, un nome utente per riga.
/etc/cron.deny
ed è vuoto, il che significa che tutti gli utenti possono usare il comando crontab. Se si desidera negare l'accesso ai comandi crontab a un utente specifico, aggiungere il nome utente a questo file.
/etc/cron.allow
esiste, solo gli utenti elencati in questo file possono usare il comando
crontab
.
crontab
.Cron Jobs Esempi
0 15 * * 1-5 command
dev null
, solo l'errore standard verrà inviato all'indirizzo e-mail specificato:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
tra i comandi):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
e
MAILTO
ed esegui un comando ogni minuto.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Conclusione
Windows 7 Beta, salute dei lavori, economia ancora
Macworld Expo (sans Steve Jobs) e International Consumer Electronics Show ( sans Bill Gates) ha portato l'anno nuovo a ...
La partenza dei lavori accende una tempesta di fuoco
Ora che Steve Jobs ha annunciato che lascerà temporaneamente la carica di amministratore delegato, è scoppiata un'enorme quantità di speculazioni online per quanto riguarda la società successiva.
Pianificazione di un`attività in Windows 10/8/7 con Creazione guidata attività di gruppo
In Windows 10/8 / 7 è possibile pianificare qualsiasi attività da avviare automaticamente utilizzando l`utilità Utilità di pianificazione. Crea procedura guidata di base. Utilità di pianificazione è uno snap-in MMC.