Compreso il file nella configurazione di crontab?


8

Sto cercando di inserire la configurazione crontab specifica del progetto nel repository di codice per semplificare l'aggiornamento dei processi cron su tutti i backend durante la distribuzione.

È possibile includere file nella configurazione di crontab? Qualcosa di simile a

* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'

Risposte:


8

A seconda del tuo demone cron e della tua distribuzione, ci dovrebbero essere diverse directory in / etc in cui puoi mettere i file con lavori per cron.

Gli script (non lavori in formato cron) inseriti nelle seguenti directory verranno eseguiti agli intervalli specificati. Si noti che la frequenza è garantita ma il tempo esatto in cui funziona potrebbe non essere Per la maggior parte degli utenti queste directory sono sufficienti:

/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

i lavori formattati cron (come i tuoi esempi sopra) collocati nella seguente directory verranno eseguiti da cron negli orari specificati. Si noti che oltre alle normali voci è necessario specificare anche l'utente del lavoro, prima del comando. Per i pacchetti e le distribuzioni software questo metodo è il modo migliore per distribuire cronjobs:

/etc/cron.d

Esempio di comando formattato cron.d:

1 1 * * * root echo "serverfault is awesome" > /dev/null

Il nome utente può essere una variabile? Ho un sacco di comandi che devono essere eseguiti come lo stesso utente, ma potrebbe essere un utente diverso in ambienti diversi. Posso fare qualcosa come $ USER = joeblow 1 1 * * * $ USER echo "serverfault is awesome"> / dev / null
Jay K,

Dipende dal demone cron. cronie, ad esempio, non consente le variabili di ambiente.
Boscoe,

4

Non per quanto ne so; questo è quello che /etc/cron.dserve.

Come ha sottolineato Boscoe, ci sono anche le /etc/cron.{hourly,daily,weekly,monthly}directory, ma i lavori lì dentro possono essere eseguiti solo come root (a meno che non si usi esplicitamente /bin/super cambiare l'EUID). I lavori in /etc/cron.dhanno un campo in più che specifica l'utente con cui vengono eseguiti e il modo in cui la tua domanda contiene un /home/userpercorso mi fa pensare che desideri che questi lavori possano essere eseguiti come utenti arbitrari.

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.