Pagina 1 di 2
Usare CRON
Inviato: mar 26 mar 2013, 17:15
da darkstaring
Sera a tutti...
Sto cercando di schedulare operazioni con cron senza successo...
In pratica scrivo un file in " /etc/cron.d/ " e le dò i permessi di esecuzione (777) ma arrivando al momento nel quale lo script dovrebbe essere eseguito
mi accorgo che invece non viene eseguito...
Sapete darmi qualche dritta?...Può essere legato al timezone impostato?
Questo è il file che scrivo:
Codice: Seleziona tutto
root@mediahp:/etc/cron.d# cat htv
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
18 17 * * * root init 0
root@mediahp:/etc/cron.d# cron -l
cron: can't lock /var/run/crond.pid, otherpid may be 28045: Resource temporarily unavailable
root@mediahp:/etc/cron.d# ps aux | grep cron
See http://gitorious.org/procps/procps/blobs/master/Documentation/FAQ
root 28045 0.0 0.0 19112 980 ? Ss 17:11 0:00 cron
Grazie
Francesco
Re: Usare CRON
Inviato: mar 26 mar 2013, 17:36
da ilmich
non sono un esperto di cron.. sicuramente c'e' chi è piu' ferrato di me in questo campo.. ma una volta ci sono impazzito anche io dietro ad una cosa simile e ho capito che:
- i file presenti sotto /etc/cron.d/ a meno che non riavvi il demone non vengono subito recepiti, mi pare che cron di suo rilegga la configurazione ogni 30 minuti
- diverso è il caso in cui editi il crontab dell'utente loggato tramite il comando crontab -e. in questo caso infatti viene istruito il demone a riconfigurarsi entro il minuto successivo.
non so se puo' essere il tuo caso.
ciaup
Re: Usare CRON
Inviato: mar 26 mar 2013, 17:47
da darkstaring
Sono su un server Ubuntu...
Difficile usare 'crontab -e'... Il file cron lo faccio generare dall'utente tramite php e non da terminale...
Ho provato a riavviare cron ma nisba...
Sembra che la directory /etc/cron.d non venga vista.. in /var/log non ho nessun log su cron ma il servizio è in esecuzione...
Non è che devo inserire in /etc/crontab di verificare ogni minuto se ci sono cosa da eseguire cose in /etc/cron.d ???
Re: Usare CRON
Inviato: mar 26 mar 2013, 18:02
da ilmich
guarda qui in particolare il pezzo
don't forget to add a newline at the end of your command in your cron file.
magari generandolo tramite php puo' essere questo il problema.
ciau
Re: Usare CRON
Inviato: mar 26 mar 2013, 20:46
da targzeta
Ma i file in cron.d devono essere script e non entry per crontab. Quel file htv non ha molto senso...o mi sono perso qualcosa???
Emanuele
Re: Usare CRON
Inviato: mer 27 mar 2013, 0:18
da ZeroUno
no Manu. Le entry in cron.daily &co devono essere script, mentre quelli in cron.d devobo essere entry cron con in più (rispetto a crontab -e) l'utente con cui lanciare il comando
Re: Usare CRON
Inviato: mer 27 mar 2013, 10:09
da darkstaring
Non sò perchè ma non và...
Questo è il file che genero:
Codice: Seleziona tutto
root@mediahp:~# ls -al /etc/cron.d/h*
-rwxrwxrwx 1 www-data www-data 159 mar 27 10:07 /etc/cron.d/htv
root@mediahp:~# cat /etc/cron.d/htv
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
10 10 * * * root echo "AJO" > /tmp/riesce.txt
Se funziona alle 10 e 10 mi dovrei trovare /tmp/riesce.txt che invece non si crea..
Cosa mi consigliate?
....Posso mettere più scheduling: ( 10 10 * * * root echo "AJO" > /tmp/riesce.txt ) nello stesso file ?
Re: Usare CRON
Inviato: mer 27 mar 2013, 10:40
da ZeroUno
puoi mettere più entry si.
Per aggiornare la cache di cron.d senza aspettare dai touch /etc/cron.d/cron.update
killa crond e startalo a mano con
/usr/sbin/crond -l notice
ora in /var/log hai il file 'cron'
che, con il tuo htv, da:
Mar 27 10:36:16 matteo crond[11946]: failed parsing crontab for user root: SHELL=/bin/bash
Mar 27 10:36:16 matteo crond[11946]: failed parsing crontab for user root: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
edit: questo su slackware
Re: Usare CRON
Inviato: mer 27 mar 2013, 13:08
da darkstaring
Ho fatto tutto quello che mi hai detto ma il file /usr/sbin/crond non esiste...
C'è una differenza tra cron e crond in /usr/sbin/ ???
Ho stoppato il servizio di cron, killato il processo
creato /etc/cron.d/cron.update
e riavviato cron con "/usr/sbin/cron -l notice" (attenzione alla d che manca).
In /var/log/ non ho nessun log su cron e le operazioni non vengono eseguite.
Re: Usare CRON
Inviato: mer 27 mar 2013, 15:21
da ZeroUno
Come dicevo, quanto detto è riferito a slackware. Può darsi che su ubuntu il processo si chiama cron e sia in un altro path (dipende da come è stato compilato).
il lancio manuale consente di mettere il "-l notice" che consente di creare un log (per capire perchè non parte) che in slackware è /var/log/cron, ma in ubuntu potrebbe chiamarsi in modo diverso o mettersi dentro il /var/log/messages
Se il problema è lo stesso di slackware, elimina SHELL e PATH da htv lasciando solamente
10 10 * * * root echo "AJO" > /tmp/riesce.txt
so per certo che in alcune distribuzioni è possibile mettere SHELL e PATH. In quali non lo so, ma se in slackware ce lo metti fallisce.
Re: Usare CRON
Inviato: mer 27 mar 2013, 16:55
da darkstaring
Il file di log sembrerebbe /var/log/syslog anche se contiene il log di dmesg ed altro contiene anche le info di cron...
Questo quello che succede dopo il riavvio di cron:
Codice: Seleziona tutto
Mar 27 16:48:01 mediaHP /usr/sbin/cron[4104]: (*system*htv) INSECURE MODE (group/other writable) (/etc/cron.d/htv)
Mar 27 16:49:01 mediaHP /usr/sbin/cron[4104]: (*system*htv) INSECURE MODE (group/other writable) (/etc/cron.d/htv)
Mar 27 16:50:01 mediaHP /usr/sbin/cron[4104]: (*system*htv) RELOAD (/etc/cron.d/htv)
Mar 27 16:50:46 mediaHP /usr/sbin/cron[4875]: (CRON) INFO (pidfile fd = 3)
Mar 27 16:50:46 mediaHP /usr/sbin/cron[4876]: (CRON) STARTUP (fork ok)
Mar 27 16:50:46 mediaHP /usr/sbin/cron[4876]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
(group/other writable) ???
I permessi di /etc/cron.d/htv sono: [ -rwxrwxrwx ]... Ho provato a cambiarli con i [ -rwxr--r-- ] e a riavviare cron ma stesso problema....
Ho rimosso le variabli PATH e SHELL e reso il root proprietario di /etc/cron.d/htv
Ho trovato questa
pagina dice:
Codice: Seleziona tutto
Come / etc / crontab , i file in / etc / cron.d directory sono monitorati
per le modifiche. In generale, l'amministratore di sistema non deve utilizzare
/ Etc / cron.d / , ma utilizzare il crontab di sistema standard / etc / crontab.
Re: Usare CRON
Inviato: mer 27 mar 2013, 17:07
da ZeroUno
root anche il gruppo? e i permessi di /etc/cron.d (la directory) come sono?
prova anche a ristoppare cron e lanciarlo in questo modo:
/usr/sbin/cron -f -d -l debug
questo non ti restituisce il prompt (con ctrl+c lo fermi) e ti da molte più informazioni
edit: prova anche a togliere 'root' dal file
Re: Usare CRON
Inviato: mer 27 mar 2013, 17:24
da ZeroUno
abbiamo comunque versioni di cron diverse
redhat ha "ISC Cron V4.1" che accetta USER= ecc in cron.d/* e accetta l'utente.
slackware ha "dillon's lightweight cron" che evidentemente non accetta USER= e l'utente ma tuttavia accetta i permessi a 777 in cron.d
tu quale hai? lo vedi da 'man cron' prime righe. Per caso man cron corrisponde a questo?
http://manpages.ubuntu.com/manpages/pre ... ron.8.html
in tal caso il cron come te l'ho dato probabilmente fallisce. Prova con
/usr/sbin/cron -f -L 15 -l
poi startalo con la versione ufficiale e dai ps -ef|grep cron per vedere con che parametri viene lanciato.
Re: Usare CRON
Inviato: mer 27 mar 2013, 17:43
da darkstaring
Bella ZeroUuuuuu

...
Finalmente il file riesce in tmp lo trovo

...
Cosa ne pensi di togliere i permessi di esecuzione dall'avvio a /etc/init.d/cron per aggiungere
in rc.local [ /usr/sbin/cron -f -d -l debug ] ???
muchas gracias

Re: Usare CRON
Inviato: mer 27 mar 2013, 19:56
da targzeta
ZeroUno ha scritto:no Manu. Le entry in cron.daily &co devono essere script, mentre quelli in cron.d devobo essere entry cron con in più (rispetto a crontab -e) l'utente con cui lanciare il comando
Bene, allora mi ero perso qualcosa

.
Grazie mille Matteo,
Emanuele