Newsgroup: it.lavoro.professioni.webmaster
Titolo: Crontab, perchè non mi funziona

desidero utilizzare il CRONTAB per inviare delle mail, pertanto ho creato
nel mio spazio web una directory denominata 'crontab' ed al suo interno ho
inserito un file 'test.php'che invia una mail al mio indirizzo, infatti se
chiamo il file via browser la mail arriva tranquillamente, quindi, penso,
che fino a qui non ci sono errori.
Edito il file crontab ed inserisco la seguente riga:
* * * * * /www/htdocs/nomedominio/crontab/test.php
(dove nomedominio naturalmente è il mio, è la path)
in pratica da come è impostato la riga di comando ad ogni minuto dovrebbe
inviare la mail, ma non avviene nessun inoltro, dove è l'errore?
grazie

desidero utilizzare il CRONTAB per inviare delle mail, pertanto ho creato
Per editare la tua crontab devi usare l'apposito comando "crontab -e".
Inoltre per default un file .php non e` direttamente eseguibile se non
specifichi il parser che deve essere utilizzato.
Dovresti usare una cosa di questo tipo:
	/usr/local/bin/php4.cgi -q /www/htdocs/nomedominio/crontab/test.php
Volendo, puoi inserire nella prima riga dello script la seguente linea:
	#!/usr/local/bin/php4.cgi -q
che istruisce la shell sull'interprete da usare. Questo ti permette di
richiamare il comando come "/www/htdocs/nomedominio/crontab/test.php"
(oppure ./test.php se ti trovi nella stessa directory).
In questo modo puoi usare il PHP come linguaggio di scripting. Ad esempio puoi
creare un file /home/pippo/pippo.php che ti stampi in output il parametro che
passi nella command line:
	#!/usr/local/bin/php4.cgi -q
	<?php
		echo "ciao argv[1]\n";
	?>
PS: un metodo alternativo per fare quello che serve a te e` quello di
    richiamare lo script mediante una query HTTP fatta con un browser che
    possa funzionare in modalita` batch (curl, w3m, lynx, ...). Nel tuo caso
    la linea da inserire in crontab e` la seguente:
    * * * * * /usr/bin/lynx -auth mario:pluto -dump /www/htdocs/nomedominio/crontab/test.php >/dev/null 2>/dev/null
    dove ho ridirezionato output ed errori per evitare che ti arrivino per
    e-mail. A voler fare le cose per bene, prima di ripetere lo stesso comando
    ogni minuto mediante crontab dovresti essere sicuro che l'istanza
    precedente sia terminata (ovviamente se questo causa dei problemi). Se
    non sei sicuro che il tuo script duri in ogni caso meno di un minuto, puoi
    ottenere cio` mediante dei meccanismi di locking (esistono vari metodi che
    ti lascio come esercizio per casa :-)
Giuseppe

 inviare la mail, ma non avviene nessun inoltro, dove è l'errore?
Che quella riga non impartisce alcun comando.  :-)
I file si dividono in file eseguibili, che contengono
codice, e file di dati, che contengono solo informazioni.
Un file php è solo un file di testo e non è in grado di
eseguire sè stesso.
Per interpretare il codice contenuto in quel file di
testo devi usare un browser, e devi dire al browser
di caricare quel file PHP.
Soluzione: cambia la tua riga in modo che il crontab
lanci lynx e fagli "visitare" la tua pagina php.  :-)
ATTENZIONE: i file PHP vengono interpretari dall'apposito
interprete, che a sua volta è lanciato dal server HTTP.
Quindi dai a lynx l'intero URL "http://".
Ciao!
--
Low Level - 
http://www.motoricerca.info
(nel mio indirizzo: sono BASSO non LENTO :-)

 * * * * * /www/htdocs/nomedominio/crontab/test.php
Innanzitutto, occhio che quei "* * * * *"
indicano: lancialo ogni 60 secondi, PER SEMPRE.  :-)
Poi mi è venuto anche il dubbio che creare il file
di crontab in quella maniera potrebbe non funzionare.
Di solito si deve creare con un comando apposito,
da shell.
Giusto per precisare.  :-)
