Crontab multipli per un utente


13

c'è un modo per usare più file crontab per un utente? Pensando a qualcosa di simile al file crontab per progetto anziché a crontab per utente ...

Qualsiasi aiuto è apprezzato ...

Risposte:


13

In genere è una buona idea mantenere il tuo crontab in un file separato e installarlo con crontab filename. (Conservo il mio file crontab in un sistema di controllo del codice sorgente.)

Potresti avere più file crontab e installarli tutti con

cat file1 file2 file3 | crontab

Il crontabcomando normalmente gestisce solo un singolo crontab per utente. Ma puoi aggiungere i file crontab di sistema alla /etc/cron.ddirectory. Questi file hanno un campo aggiuntivo dopo la specifica temporale che indica l'utente per il lavoro e puoi avere più file per utente. Anche se uno di essi presenta un errore di sintassi, gli altri verranno comunque eseguiti.

Avrai bisogno dell'accesso root per installare i file in quella directory.

man 5 crontab per dettagli.

Non sono convinto che aggirare il normale meccanismo crontab come questo sia una buona idea, ma dovrebbe funzionare.

(Ciò presuppone l'implementazione "Vixie Cron", che è probabilmente ciò che utilizza il tuo sistema.)

NOTA: potresti essere tentato di provare

crontab file1 file2 file3 # WRONG

ma un rapido esperimento mostra che tutti i nomi dei file, tranne il primo, vengono silenziosamente ignorati. La pagina man dice che un singolo nome di file è accettato, ma non dice cosa succede se vengono forniti più nomi di file.


L'ho fatto oggi. Sarebbe facile da fare, ma l'obiettivo è che ogni "manager" del progetto avrebbe il controllo del proprio crontab. Con questo approccio dovrebbe essere combinato in questo modo ogni volta che qualcuno cambia uno dei file, il che significa che dovranno tenere traccia di tutti i file che devono essere compilati

1
Quindi crea un programma (o uno script o altro) per automatizzarlo. Si noti che è possibile richiamare il crontabcomando da una voce crontab.
Keith Thompson,

1
@MateuszKonieczny: Questa è una buona ragione, ma è anche facile cancellare accidentalmente il tuo crontab. crontabsenza argomenti legge un nuovo crontab da stdin.
Keith Thompson

1
@MateuszKonieczny: No, lo tengo in un repository CVS e lo copro $HOMEquando lo aggiorno . (Uso CVS perché Git non esisteva quando ho iniziato a farlo.)
Keith Thompson

1
@KeithThompson Oh, gotcha! Sto creando un documento per aiutare le persone a eseguire Fedora Core 24 da "zero" senza evoluzione o gnome: github.com/barrycarter/bcapps/blob/master/FEDORA e volevo condividere parte del mio file cron, ma non tutto. La tua soluzione (creando bc-public-cron nella directory GIT e bc-private-cron al di fuori di essa) si adatta perfettamente al conto.
Barrycarter,

4

Perché dovresti farlo? Potresti usare più righe in crontab - penso che farebbe anche il lavoro.

Ci sono anche le directory che potresti probabilmente usare:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

Ecco com'è adesso :) Vorrei solo sapere se c'è un modo per farlo
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.