Skip to main content

Come modificare il file Crontab di Linux per pianificare i lavori

Mencoder: come tagliare e unire video da riga di comando (Giugno 2026)

Mencoder: come tagliare e unire video da riga di comando (Giugno 2026)
Anonim

Un demone in Linux ha chiamato cron esegue i processi a intervalli regolari. Controlla alcune cartelle del sistema affinché gli script possano essere eseguiti in una serie di cartelle, tra cui /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly e /etc/cron.monthly. C'è anche un file chiamato / etc / crontab.

Inserimento di script nelle cartelle Cron

Puoi semplicemente inserire gli script nelle cartelle pertinenti per farli eseguire intervalli regolari.

Ad esempio, apri una finestra di terminale ed esegui il seguente comando ls:

ls / etc / cron *

Verrà visualizzato l'elenco di programmi o script eseguiti ogni ora, giornalmente, settimanalmente e mensilmente.

Il problema con queste cartelle è che sono un po 'vaghe. Per esempio, quotidiano significa che lo script verrà eseguito una volta al giorno ma non hai il controllo del tempo durante il quale lo script verrà eseguito durante quel giorno.

È qui che entra in gioco il file crontab.

Modificando il file crontab puoi ottenere uno script o un programma da eseguire alla data e all'ora esatte in cui desideri che venga eseguito.

permessi

Il comando crontab richiede che un utente abbia le autorizzazioni per modificare un file crontab. Ci sono fondamentalmente due file che sono usati per gestire i permessi crontab:

  • /etc/cron.allow
  • /etc/cron.deny

Se esiste il file /etc/cron.allow, l'utente che desidera modificare il file crontab deve trovarsi in quel file. Se il file cron.allow non esiste ma esiste un file /etc/cron.deny, l'utente non deve esistere in quel file. Se entrambi i file esistono, il file /etc/cron.allow sovrascrive il file /etc/cron.deny. Se non esiste alcun file, dipende dalla configurazione del sistema se un utente può modificare crontab.

L'utente root può sempre modificare il file crontab. È possibile utilizzare il comando su per passare all'utente root o il comando sudo per eseguire il comando crontab.

Modifica del file Crontab

Ogni utente che dispone delle autorizzazioni appropriate può creare il proprio file crontab. Il comando cron cerca fondamentalmente tutti i file crontab e scorre attraverso ognuno di essi.

Per verificare se hai un file crontab, esegui il seguente comando:

crontab -l

Se non si dispone di un file crontab, il messaggio "no crontab for "verrà visualizzato, altrimenti verrà visualizzato il file crontab (questa funzionalità differisce da sistema a sistema, a volte non visualizza nulla e altre volte visualizza" non modificare questo file ").

Per creare o modificare un file crontab, eseguire il seguente comando:

crontab -e

Il file che si apre ha molte informazioni ma la parte chiave è l'esempio poco prima della fine della sezione dei commenti (i commenti sono denotati da linee che iniziano con #).

# m h comando dom dow

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Ci sono 6 informazioni per adattarsi a ciascuna riga del file crontab:

  • Il minuto del giorno in cui verrà eseguito il comando (m)
  • L'ora del giorno in cui verrà eseguito il comando (h)
  • Il giorno del mese in cui deve essere eseguito il comando (dom)
  • Il mese in cui verrà eseguito il comando (mon)
  • Il giorno della settimana in cui verrà eseguito il comando (dow)
  • Il comando

Per ogni elemento (eccetto per il comando) è possibile specificare un carattere jolly. Guarda la seguente linea crontab di esempio:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

A 30 minuti, 18 ore e qualsiasi giorno, mese e giorno della settimana, questa voce crontab comprimerà e aggiungerà la directory home alla cartella / var / backups.

Per ottenere un comando da eseguire ogni 30 minuti ogni ora, eseguire il seguente comando:

30 * * * * comando

Per ottenere un comando da eseguire ogni minuto dopo le 6:00, eseguire il seguente comando:

* 18 * * * comando

Devi quindi stare attento a configurare i tuoi comandi crontab.

Per esempio:

* * * 1 * comando

Questo comando verrà eseguito ogni minuto di ogni ora di ogni giorno di ogni settimana di gennaio.

Per eseguire un comando alle 5 del mattino del 1 ° gennaio, avresti il ​​seguente comando nel file crontab:

0 5 1 1 * comando

Come rimuovere un file Crontab

La maggior parte delle volte non vorrete rimuovere il file crontab ma potreste voler rimuovere alcune righe dal file crontab.

Tuttavia, se si desidera rimuovere il file crontab dell'utente, eseguire il seguente comando:

crontab -r

Un modo più sicuro per farlo è eseguire il seguente comando:

crontab -i

Il sistema operativo richiede una verifica prima di rimuovere il file crontab.