Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
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:
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.
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 ???
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
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
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.
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.
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:
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:
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.
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
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.
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 ] ???
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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama