Hola a todos. Tengo que ejecutar unos ficheros php en cron, en centos. Esos ficheros llevan ampersands (&) y cuando se envía por mail el reporte, dice que no se encuentra la ruta, y la ruta que me llega al correo se corta justo donde empieza el ampersand.
Alguien me puede ayudar?
Salu2
Pega tu crontab.
Cita de: MinusFour en 19 Noviembre 2014, 20:55 PM
Pega tu crontab.
## * * * * 0-7 lynx -dump 'Can't Access `file://localhost/var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check'
## * * * * 0-7 php /var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check >> /root/pruebadoc.txt
ninguno de los dos funciona, el primer comando del cron me dice:
Can't Access `file://localhostCan't Access `file://localhost//var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check'
Alert!: Unable to access document.
lynx: Can't access startfile '
El segundo error dice:
Could not open input file: /var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155
Lo que quiero es ejecutar ese script.
Salu2
Cita de: ccrunch en 19 Noviembre 2014, 21:12 PM
## * * * * 0-7 lynx -dump 'Can't Access `file://localhost/var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check'
## * * * * 0-7 php /var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check >> /root/pruebadoc.txt
ninguno de los dos funciona, el primer comando del cron me dice:
Can't Access `file://localhostCan't Access `file://localhost//var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check'
Alert!: Unable to access document.
lynx: Can't access startfile '
El segundo error dice:
Could not open input file: /var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155
Lo que quiero es ejecutar ese script.
Salu2
Esto no es ningun problema de cron. Le estas pasando a Linx:
'Can't Access `file://localhost/var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=155&action=check'
Esto no es un path ni una url. Primero porque está el texto ese de "Can't Access" y segundo porque file:// no hace referencia a un archivo tampoco, hace referencia a una URL.
No existe el archivo cron.php?bot=155&action=check. Existe el archivo cron.php, lo demas es un query string que pertenece a una URL.
Necesitas ejecutar lynx? No puedes hacerlo con curl?
El de php sufre de lo mismo. No existe un archivo cron.php?bot=15.
curl http://localhost/script/cron.php?bot=15 >> /path/to/file.txt
Hola, he probado con esto:
curl http://localhost/var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=150&action=check >> /root/pruebacurl.txt
Pero me dice:
curl: (7) couldn't connect to host
CitarNo existe el archivo cron.php?bot=155&action=check. Existe el archivo cron.php, lo demas es un query string que pertenece a una URL.
Te refieres a que no puedo poner la consulta en el mismo url?
Salu2
Citarurl: (7) couldn't connect to host
¿ Tienes apache (o algún servidor http) corriendo ?
Tienes que diferenciar entre url y path. La url puede incluir parámetros que el servidor HTTP transforma y envía a el interprete.. la path solo puede contener la ruta original del archivo y los parámetros se envían de otra forma.
Si no quieres tener que correr un servidor http solo para hacer el cron tendrías que modificar un poco el script.
if(php_sapi_name()==='cli'){
$params = getopt(null,array('bot:','action:'));
$_GET['bot'] = $params['bot'];
$_GET['action'] = $params['action'];
unset($params);
}
print_r($_GET);
php /var/www/cron.php --bot 150 --action check >> /root/pruebacurl.txt
Array
(
[bot] => 150
[action] => check
)
Saludos
edito
. todo lo que habia escrito lo habia puesto dvry antes
edito2
si tienes un servidor ejecutándose
en ves de:
curl http://localhost/var/www/vhosts/midominio.es/httpdocs/cron/cron.php?bot=150&action=check >> /root/pruebacurl.txt
prueba con:
curl http://tudominio.es/cron/cron.php?bot=150&action=check >> /root/pruebacurl.txt
Yo diria que estas haciendo una mezcla de url y path otra vez.
Me atreveria a decir que el directorio principal de tu servidor web es:
/var/www/vhosts/midominio.es/httpdocs/
Entonces deberías poder hacer la consulta a:
http://www.midominio.es/cron/cron.php?bot=150&action=check >> /path/to/file.txt
Depende tambien de tu configuración de tu vhost. (Si permite desde localhost, etc).
Hola, al final lo hice de otra manera porque era mas o menos urgente, pero gracias a todos por la ayuda (y a Dantemc que fue quien me ayudó en la solución final).
gracias de nuevo!