Come usare @reboot in /etc/cron.d


17

Sto migrando i crontab di singoli utenti su /etc/cron.d, poiché ciò consentirebbe backup, ripristino e versioning adeguati.

Finora, a quanto ho capito, l'unica differenza tra i crontab dell'utente e quelli ecc. È che devi specificare l'utente come sesta colonna. È giusto?

E la mia domanda principale, per la quale non sono riuscito a trovare la risposta da nessuna parte su Internet: qual è il modo giusto di usare @rebootin /etc/cron.d o / etc / crontab?

qualcosa del genere @reboot root command?

Risposte:


20

Dalla pagina man di crontab :

Lavori in /etc/cron.d/

I lavori in cron.d sono lavori di sistema, che vengono generalmente utilizzati per più di un utente. Questo è il motivo per cui è necessario il nome dell'utente. MAILTO sulla prima riga è facoltativo.

ESEMPIO PER LAVORO IN /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

Questa è l'intera sezione su crontab in / etc , quindi immagino che l'inclusione dell'utente sotto il cui nome viene eseguito il lavoro sia davvero l' unica differenza.

Sempre dalla stessa pagina man:

Sono supportati questi "soprannomi" di specifiche temporali, che sostituiscono i 5 campi iniziali di data e ora e sono preceduti dal carattere "@":

@reboot: esegui una volta dopo il riavvio.

Quindi la tua deduzione è che il modo corretto di usare @reboot è

   @reboot user_name command

è corretto .


1

Nel caso in cui /etc/crontabdevi solo aggiungere queste righe.

@reboot        command

Dove comando può essere qualsiasi script o un singolo file.


Funziona? /etc/crontabdi solito richiede un nome utente.
mwfearnley,

1

Se lo stai eseguendo in modo interattivo come di seguito, non specifichi l'utente:

crontab -e
@reboot /root/mycommand

Se lo stai inserendo come file in /etc/cron.d, ad esempio /etc/cron.d/mycronfile, devi inserire l'utente:

@reboot root /root/mycommand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.