Discussione:
cronjob che non parte
(troppo vecchio per rispondere)
g4b0
2008-05-29 08:29:10 UTC
Permalink
Ho il seguete cronjob:

15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue

che dovrebbe far partire la newsletter durante la notte, ad ogni ora. Non fa
nulla. Se lancio il comando da shell, invece, funziona egregiamente! Ho
sbagliato qualcosa nella sintassi? A me pare di no...
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
Gabriele Greco
2008-05-30 10:18:42 UTC
Permalink
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta, la regola pero` dove l'hai messa? L'hai
installata con crontab -e o hai creato un file in qualche directory?

Bye,
Gabry
g4b0
2008-05-30 10:34:42 UTC
Permalink
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta, la regola pero` dove l'hai messa? L'hai
installata con crontab -e o hai creato un file in qualche directory?
crontab -e

Proprio non capisco, gli altri crontab funzionano correttamente..
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
Giovanni
2008-05-30 12:15:19 UTC
Permalink
Post by Gabriele Greco
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta, la regola pero` dove l'hai messa? L'hai
installata con crontab -e o hai creato un file in qualche directory?
crontab -e
Proprio non capisco, gli altri crontab funzionano correttamente..
phplist è eseguibile per l'utente per cui va in esecuzione il job?

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 < http://giovanni.homelinux.net/ >
motion musso: aka sathia
2008-05-30 13:26:43 UTC
Permalink
Post by Giovanni
phplist è eseguibile per l'utente per cui va in esecuzione il job?
io per eseguire i file php faccio così:

30 */3 * * * cd /localhost/site; /usr/bin/php i.php >> /home/sathia/logs
--
while(!asleep()) sheep++;
g4b0
2008-06-04 06:51:17 UTC
Permalink
30 */3 * * *   cd /localhost/site; /usr/bin/php i.php >> /home/sathia/log
*/3 signigica che lanci il comando ogni 3 ore?
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
g4b0
2008-06-04 06:50:20 UTC
Permalink
Post by Giovanni
Post by Gabriele Greco
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta, la regola pero` dove l'hai messa? L'hai
installata con crontab -e o hai creato un file in qualche directory?
crontab -e
Proprio non capisco, gli altri crontab funzionano correttamente..
phplist è eseguibile per l'utente per cui va in esecuzione il job?
Sisi, inotre si tratta di root, quindi escluderei problemi di permessi
(anche perchè lo stesso comando lanciato a mano funziona)
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
g4b0
2008-06-06 13:25:00 UTC
Permalink
Post by g4b0
Post by Giovanni
Post by Gabriele Greco
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta, la regola pero` dove l'hai messa? L'hai
installata con crontab -e o hai creato un file in qualche directory?
crontab -e
Proprio non capisco, gli altri crontab funzionano correttamente..
phplist è eseguibile per l'utente per cui va in esecuzione il job?
Sisi, inotre si tratta di root, quindi escluderei problemi di permessi
(anche perchè lo stesso comando lanciato a mano funziona)
Per completezza eccovi lo script:

dns2:~/phplist# more phplist
#!/bin/bash

# script to run PHPlist from commandline. You may need to edit this to make
it work
# with your shell environment. The following should work for Bash on Fedora
Linux
# but this may vary strongly in other situations. You will need to dig into
the
# code to make sure it works for you.

# in commandline mode, access is restricted to users who are listed in the
config file
# check README.commandline for more info

# identify the config file for your installation
CONFIG=/home/pippo/public_html/lists/config/config.php
export CONFIG

# alternatively you can use -c <path to config file> on the commandline

# run the PHPlist index file with all parameters passed to this script
/usr/bin/php /home/pippo/public_html/lists/admin/index.php $*
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
mallin.shetland
2008-05-30 10:54:59 UTC
Permalink
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta,
La cosa e' molto opinabile.

I job di sistema vanno in /etc/crontab e la sintassi e':

minuti ore giorno mese giorno_settimana utente comando

Inoltre su confonde molto facilmente il comando crontab per
cui e' sempre meglio digitare:

# crontab -u root -e
Roberto Tagliaferri
2008-05-30 10:59:47 UTC
Permalink
Post by mallin.shetland
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta,
La cosa e' molto opinabile.
minuti ore giorno mese giorno_settimana utente comando
Inoltre su confonde molto facilmente il comando crontab per
# crontab -u root -e
No no, non è opinabile, è corretta.
E poi vanno messi in /etc/crontab sul TUO sistema.. Nel mio ad esempio no
--
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)tosnet.it
As long as the answer is right, who cares if the question is wrong?
g4b0
2008-06-04 06:52:07 UTC
Permalink
Post by Roberto Tagliaferri
Post by mallin.shetland
Post by Gabriele Greco
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
La sintassi e` corretta,
La cosa e' molto opinabile.
minuti ore giorno mese giorno_settimana utente comando
Inoltre su confonde molto facilmente il comando crontab per
# crontab -u root -e
No no, non è opinabile, è corretta.
E poi vanno messi in /etc/crontab sul TUO sistema.. Nel mio ad esempio no
In che sistema si usa /etc/crontab? Io conosco slackware e debian, e per
quel che ne so si usa crontab -e
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
roberto
2008-06-04 10:21:23 UTC
Permalink
g4b0 wrote:
-cut-
Post by g4b0
In che sistema si usa /etc/crontab? Io conosco slackware e debian, e per
Ovunque.
E' il crontab system-wide, dove l'admin puo' unificare tutte le
operazioni che gli interessa siano eseguite, a prescindere dalla
esistenza o meno degli altri utenti.
Post by g4b0
quel che ne so si usa crontab -e
se si vuole, e se sei un utente, usi crontab -e.
Se sei il dio root, puoi anche usare /etc/crontab
Questo qui e' della mia debian:

***@proliant:/ulocal/poggir$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.daily
47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.weekly
52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report
/etc/cron.monthly
#
--
|Save our planet!
Ciao |Save wildlife!
roberto |For your E-MAIL use ONLY recycled Bytes !!
|roberto poggi ***@softhome.net
Giovanni
2008-06-04 10:55:36 UTC
Permalink
Post by g4b0
Post by Roberto Tagliaferri
No no, non è opinabile, è corretta.
E poi vanno messi in /etc/crontab sul TUO sistema.. Nel mio ad esempio no
In che sistema si usa /etc/crontab? Io conosco slackware e debian, e per
quel che ne so si usa crontab -e
Per la slackware che usa una versione di cron scritta da Matthew
Dillon (Dillon's Cron) crontab -e edita direttamente il file nella
directory di lavoro (quella dove il demone deve trovare i file) e
dovrebbe automaticamente segnalare delle modifiche. Attenzione però
che altre versioni di crontab creano un nuovo file e quello che c'era
in precedenza viene perso.

Quanto all'esecuzione delle attività non tutte le variabili di
environment vengono settate quindi bisogna fare molta attenzione. La
mia man page dice che vengono passate solo USER, HOME, and SHELL.

Mancando PATH occorre fare *molta* attenzione sono scritti i comandi
negli script.

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 < http://giovanni.homelinux.net/ >
gt
2008-06-04 07:15:19 UTC
Permalink
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * * * /root/phplist/phplist -p processqueue
che dovrebbe far partire la newsletter durante la notte, ad ogni ora. Non
fa nulla. Se lancio il comando da shell, invece, funziona egregiamente! Ho
sbagliato qualcosa nella sintassi? A me pare di no...
prova con (verifica i percorsi effettivi sul tuo sistema):
15 0,1,2,3,4,5,6,22,23 * *
* /usr/bin/php /root/phplist/admin/index.php -pprocessqueue -c/root/phplist/config/config.php
gt
2008-06-04 07:19:01 UTC
Permalink
Post by g4b0
15 0,1,2,3,4,5,6,22,23 * *
* /usr/bin/php /root/phplist/admin/index.php -pprocessqueue
-c/root/phplist/config/config.php
o anche solo con:
15 0,1,2,3,4,5,6,22,23 * * * /usr/bin/php /root/phplist/phplist -p
processqueue
g4b0
2008-06-09 10:27:33 UTC
Permalink
Scusate se insisto, ma questa proprio non la capisco!! Ho provato a
modificarlo in questo modo:

0 0-6,22-23 * * * /root/phplist/phplist -p processqueue

Ho provato anche da webmin, con il pulsante 'process now', e funziona.
Il comando lanciato a mano funziona. Il cronjob appartiene a root, e root
può eseguire lo script.
Solo quando dovrebbe farlo non funziona, cioè una volta all'ora per tutte le
ore della notte.

Esiste un log di cron che posso consultare per vedere se ci sono dei
problemi?
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
Davide Bianchi
2008-06-09 10:33:43 UTC
Permalink
Post by g4b0
0 0-6,22-23 * * * /root/phplist/phplist -p processqueue
devo supporre che 'phplist' sia uno script in php, il path di php
nello script e' corretto?
Post by g4b0
Esiste un log di cron che posso consultare per vedere se ci sono dei
problemi?
/var/log/cron

Davide
--
I'm locked in a maze of little projects, all of which suck.
-- Chris "Saundo" Saunderson on alt.sysadmin.recovery
g4b0
2008-06-09 13:50:40 UTC
Permalink
Post by Davide Bianchi
Post by g4b0
0 0-6,22-23 * * * /root/phplist/phplist -p processqueue
devo supporre che 'phplist' sia uno script in php, il path di php
nello script e' corretto?
È uno script bash che richiama uno script php. Il path dovrebbe essere
corretto, in una mia risposta di poco fa ho riportato lo script.
Post by Davide Bianchi
Post by g4b0
Esiste un log di cron che posso consultare per vedere se ci sono dei
problemi?
/var/log/cron
Sulla mia debian non c'è questo file.. strano..
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
Davide Bianchi
2008-06-09 13:54:29 UTC
Permalink
Post by g4b0
È uno script bash che richiama uno script php.
ah...
Post by g4b0
Il path dovrebbe essere corretto, in una mia risposta di poco fa ho
riportato lo script.
Tra il 'dovrebbe' ed 'e' c'e' una certa differenza. Io comincerei ad
aggiungere un qualche 'print' allo script in modo da vedere se lo script
viene eseguito e se si dove si arena.

Davide
--
I'm not feeling very well, I need a doctor immediately. Ring the
nearest golf course.
-- Julius Henry "Groucho" Marx (http://en.wikiquote.org/wiki/Groucho_Marx)
Giovanni
2008-06-09 10:54:56 UTC
Permalink
Post by g4b0
0 0-6,22-23 * * * /root/phplist/phplist -p processqueue
Solo quando dovrebbe farlo non funziona, cioè una volta all'ora per tutte le
ore della notte.
Esiste un log di cron che posso consultare per vedere se ci sono dei
problemi?
Ci sono varie versioni di crond. La versione che ho io la lancio con
'-l10' ma fa solo il log delle attività schedulate in /var/log/cron.

Quanto cron va in esecuzione non setta tutte le variabili di
environment. La mia man page dice che vengono passate solo USER, HOME,
and SHELL.

Mancando PATH occorre fare *molta* attenzione sono scritti i comandi
negli script. Se lanci uno script php IMO non trova il programma php.

Prova con:
0 0-6,22-23 * * * /usr/bin/php -f /root/phplist/phplist -- -p processqueue

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 < http://giovanni.homelinux.net/ >
g4b0
2008-06-09 13:49:10 UTC
Permalink
Post by Giovanni
Post by g4b0
0 0-6,22-23 * * * /root/phplist/phplist -p processqueue
Solo quando dovrebbe farlo non funziona, cioè una volta all'ora per tutte
le ore della notte.
Esiste un log di cron che posso consultare per vedere se ci sono dei
problemi?
Ci sono varie versioni di crond. La versione che ho io la lancio con
'-l10' ma fa solo il log delle attività schedulate in /var/log/cron.
Quanto cron va in esecuzione non setta tutte le variabili di
environment. La mia man page dice che vengono passate solo USER, HOME,
and SHELL.
Mancando PATH occorre fare *molta* attenzione sono scritti i comandi
negli script. Se lanci uno script php IMO non trova il programma php.
0 0-6,22-23 * * * /usr/bin/php -f /root/phplist/phplist -- -p processqueue
/root/phplist/phplist è uno script bash. Il suo contenuto è il seguente:

dns2:/var/log# more /root/phplist/phplist
#!/bin/bash

# script to run PHPlist from commandline. You may need to edit this to make
it work
# with your shell environment. The following should work for Bash on Fedora
Linux
# but this may vary strongly in other situations. You will need to dig into
the
# code to make sure it works for you.

# in commandline mode, access is restricted to users who are listed in the
config file
# check README.commandline for more info

# identify the config file for your installation
CONFIG=/home/company/public_html/lists/config/config.php
export CONFIG

# alternatively you can use -c <path to config file> on the commandline

# run the PHPlist index file with all parameters passed to this script
/usr/bin/php /home/company/public_html/lists/admin/index.php $*


in teoria dovrebbe essere corretto, ma a quanto pare gli manca qualche
variabile d'ambiente.. come faccio a determinare quali variabili usa un
determinato script?
--
g4b0, linux user n. 369000
http://gabo.homelinux.com
Loading...