PDA

View Full Version : Aiuto con crontab


mirrorx
04-11-2011, 11:59
Ciao a tutti :)

Devo schedulare 2 script (sequenziali) per girare tutti i giorni a mezzogiorno su una macchina freebsd.
Nella mia macchina ho il mio file crontab che si presenta così:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly


Quello che non capisco: è qui che devo inserire i comandi o nella cartella cron.daily?

Gimli[2BV!2B]
04-11-2011, 23:09
In GNU/Linux solitamente non si modifica direttamente il file /etc/crontab, né il contenuto delle cartelle hourly, daily, ecc...
I processi impostati in hourly, daily, ecc... sono di stretta competenza delle distribuzioni e sono relativi a processi di manutenzione standard.

Spesso si usa il comando crontab -e che crea un crontab di proprietà dell'utente con cui si invoca (salvati in /var/spool/cron/crontabs/).
I comandi impostati nei crontab dell'utente sono eseguiti con i diritti di quell'utente, l'eventuale output (se non rediretto) inviato via mail all'utente.

È anche possibile aggiungere un frammento di crontab nella cartella di sistema /etc/cron.d/.
Questo metodo è praticamente equivalente alla modifica diretta di /etc/crontab, ma permette di evitare la modifica del file principale (se si facesse un errore si rischierebbe di far saltare tute le pianificazioni) e di mantenere più ordine.

Tirando le somme ti consiglierei di aggiungere un frammento di crontab in /etc/cron.d (dovrebbe esserci anche in FreeBSD (http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2009-November/176350.html)); in assenza di questa cartella nel crontab di root.

mirrorx
08-11-2011, 14:34
Ciao ti ringrazio per la risposta. Provo subito.

mirrorx
08-11-2011, 14:39
Allora ho provato come hai detto tu nel primo esempio:

ho digitato cron -e

e ho creato un file dove ho:

33 14 * * * root sh /etc/crontest.sh
~
~
~
~
~
~

(Con l'intento di eseguire lo script crontest.sh tutti i giorni alle 14 33)

Ma non funge :muro:

mirrorx
08-11-2011, 15:29
Mi rispondo da solo:

senza specificare l'utente 'root' funziona.
Ma quindi con quali privilegi starà girando ora?

Gimli[2BV!2B]
08-11-2011, 19:46
Con i diritti dell'utente con cui hai invocato crontab -e (è cron -e in *BSD?)

È possibile creare un crontab per ogni utente del sistema.