GNU/Linux >> Linux Esercitazione >  >> Linux

CentOS / RHEL:Guida per principianti a cron

Cron è un programmatore di lavoro basato sul tempo, è configurato per eseguire comandi a orari o intervalli prestabiliti. Ogni utente ha una tabella cron che definisce cosa eseguire ea quale intervallo. cronaca comando viene utilizzato per creare, modificare e visualizzare i lavori cron.

File e directory di configurazione

– Cron è controllato da un insieme di file chiamato crontabs.
– C'è il file master in /etc/crontab , insieme ai file crontab per gli utenti in /var/spool/cron/ . In quest'ultima directory, ai file viene assegnato lo stesso nome del nome utente di un utente.
– Il file /etc/crontab esegue automaticamente gli elementi in diverse sottodirectory a intervalli regolari. Gli script si trovano in varie directory:/etc/cron.* vengono eseguiti secondo l'intervallo di tempo indicato di seguito. Tutti gli script in queste directory vengono eseguiti con il privilegio di root.

Directory Tempo
/etc/cron.hourly Primo minuto di ogni ora
/etc/cron.daily Tra le 3:05 e le 22:55 ogni giorno
/etc/cron.weekly Tra le 3:25 e le 23:10 dopo 7 giorni dall'ultima esecuzione
/etc/cron.monthly Tra le 3:45 e le 23:30 dopo un mese dall'ultima esecuzione

– Tutto ciò che l'amministratore di sistema deve fare è inserire uno script di shell o un collegamento a un eseguibile in una delle directory e verrà eseguito automaticamente al momento opportuno.

Sintassi crontab

La configurazione di un crontab a livello di utente è leggermente diversa. I file in /var/spool/cron non vengono modificati direttamente. Invece, per manipolarli viene utilizzato un programma chiamato crontab. La sintassi del comando crontab è:

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u [user]  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n [host]  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x [mask]  enable debugging

Come modificare un crontab

Il modo migliore per modificare un crontab è usare il comando crontab -e . Un altro modo per farlo è :

1. su to the user whose cron you want to change
2. crontab -l > file      [ copy the crontab to a file ].
3. vi file                [ make changes to the file as per your need ]
4. crontab file           [ this makes the "file" as new crontab ]

Non è necessario riavviare il demone cron dopo questo.

Interpretazione dei campi di ora e data

Ogni comando cron ha 5 campi di data e ora, seguiti da un nome utente [opzionale], e se questo è il file crontab di sistema, sarà seguito da un comando. I comandi vengono eseguiti quando l'ora specificata dai campi ora/data corrisponde all'ora corrente.

field          allowed values
-----          --------------                  
minute         0-59                  
hour           0-23                  
day of month   0-31                  
month          0-12 (or names, see below)                  
day of week    0-7 (0 or 7 is Sun, or use names)

Un campo può essere un asterisco (*), che sta sempre per dal primo all'ultimo . Quindi, se utilizzato nel campo del mese, significa ogni mese da 0 (gennaio) a 12 (dicembre).

Esempio di lavoro Cron:

# Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 0  1  *  *  *  [user-name] [command to be executed]

Esempi di impostazione dei lavori cron

Di seguito sono riportati alcuni esempi di utilizzo di crontab per capire come pianificare un'attività :
Esempio : eseguire un lavoro cinque minuti dopo la mezzanotte, ogni giorno :

5 0 *  *  *     /home/oracle/scan_asm_devices.sh

Esempio: eseguire un lavoro alle 17:30 il 1° di ogni mese :

30 17 1  *  *   mail -s "It's 5:30pm"

Esempio: Esecuzione di un lavoro alle 4:05 ogni lunedì.

5  4  *  *  mon     echo "run at 5 after 4 every monday"

Controllo dell'accesso degli utenti

– Per consentire agli utenti di accedere a crontabs, i file /etc/cron.allow e /etc/cron.deny possono essere utilizzati rispettivamente per consentire o negare l'accesso. Inserisci semplicemente un nome utente in uno dei 2 file per consentire o negare l'accesso a crontab.
– Se il file /etc/cron.allow esiste, il file /etc/cron.deny non verrà utilizzato.
– Nell'installazione predefinita esisterà solo un file vuoto /etc/cron.deny.
– Se nessuno dei file esiste, solo l'utente root avrà accesso per pianificare un lavoro tramite cron.


Linux
  1. CentOS / RHEL:Guida per principianti a vsftpd (installazione e configurazione)

  2. Guida per principianti all'ottimizzazione dei profili in CentOS/RHEL

  3. Guida per principianti alla gestione dei flussi dei moduli del pacchetto in CentOS/RHEL 8

  4. CentOS / RedHat:Guida per principianti all'amministrazione dei file di registro

  5. Guida per principianti a SELinux

Pianificazione di Cron Jobs con Crontab

Una guida per principianti a LVM

Una guida per principianti a Cron Jobs

CentOS / RHEL 7:Guida per principianti alle unità di servizio systemd

Guida completa alla configurazione di iSCSI in CentOS / RHEL 7

CentOS / RHEL:guida alla risoluzione dei problemi di iptables