¿Error 406 con OBTENER tarea cron?

¿Error 406 con OBTENER tarea cron?

Recibo una página de error 406 con este cron.

EDITAR

Actualicé el cron para usar wget en su lugar, pero todavía no obtengo el resultado de la página. aquí está el nuevo crontab:

/usr/bin/wget "https://abc.com/cron/sendBulletinEmails.php" >> /home/abc/public_html/cron/logs/sendBulletinEmails.log

sin embargo, esto ni siquiera implica utilizar el archivo de registro. En su lugar, recibo un correo electrónico. Aquí está el resultado del correo electrónico:

--09:20:01--  https://abc.com/cron/sendBulletinEmails.php
           => `sendBulletinEmails.php'
Resolving abc.com... 69.91.162.123
Connecting to fin-iq.com|69.91.162.123|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

    0K                                                         122.58 B/s

09:20:02 (122.58 B/s) - `sendBulletinEmails.php' saved [101]

También probé este crontab (para obtener el resultado correcto):

/usr/bin/wget --append-output=/home/abc/public_html/cron/logs/sendBulletinEmails.log "https://abc.com/cron/sendBulletinEmails.php"      

pero esto también me da el mismo registro que el correo electrónico. la página genera texto, que es lo que quiero que se registre en mi archivo de registro. ¿Alguna idea sobre cómo hacer que eso funcione?

¡gracias de nuevo!

VIEJO

Aquí está el crontab (copiado de cPanel):

    * * * * * GET https://abc.com/cron/sendBulletinEmails.php >>
/home/abc/public_html/cron/logs/sendBulletinEmails.log

aquí está el registro:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>406 Not Acceptable</title>
</head><body>
<h1>Not Acceptable</h1>
<p>An appropriate representation of the requested resource /cron/sendSurveyEmails.php could not be found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

Además, cuando lo ejecuto desde mi propio navegador, funciona.

¿Alguna idea de porqué está pasando esto? gracias =)

Respuesta1

Recibir un correo electrónico de cron es una cuestión de diseño. Puede desactivar esto agregando >/dev/null 2>&1al final de la línea. (Lea más sobre cron aquí: http://adminschoice.com/crontab-quick-reference)

Creo que el resto de la pregunta podría resolverse leyendo un poco más sobre wget. Está intentando enviar el resultado a un archivo de registro utilizando la redirección de salida estándar. El contenido de ese archivo sólo será lo que normalmente verías en la pantalla. Wget no muestra el archivo en sí, por lo que la redirección de salida no funcionará aquí. La buena noticia es que wget tiene un modificador incorporado para administrar el archivo de salida.

Prueba esto:

/usr/bin/wget -O /home/abc/public_html/cron/logs/sendBulletinEmails.log "https://abc.com/cron/sendBulletinEmails.php" >/dev/null 2>&1

Respuesta2

Es posible que el servidor esté buscando HTTP_USER_AGENT para bloquear herramientas automatizadas. Si está disponible para usted, pruebe con 'wget'. Admite el -U or --user-agent=AGENTcambio en la línea de comando para ayudar a que su script aparezca como si fuera una sesión válida del navegador Firefox/Interner Explorer.

De lo contrario, es posible que necesite escribir un pequeño script para utilizar funciones más sólidas de ese módulo Perl y hacer que el trabajo cron ejecute el script en lugar de llamar a get directamente. Encontré algunos ejemplos de esto aquí:http://perlmeme.org/tutorials/lwp.html

información relacionada