406 Erro com GET Cron Job?

406 Erro com GET Cron Job?

estou recebendo uma página de erro 406 com este cron.

EDITAR

atualizei o cron para usar o wget, mas ainda não estou obtendo a saída da página. aqui está o novo crontab:

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

no entanto, isso nem sequer está usando o arquivo de log. em vez disso, recebo um e-mail. aqui está a saída do e-mail:

--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]

eu também tentei este crontab (para obter a saída correta):

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

mas isso também me dá o mesmo registro do email. a página gera texto, que é o que eu quero registrar em meu arquivo de log. alguma idéia de como fazer isso funcionar?

obrigado novamente!

VELHO

aqui está o crontab (copiado do cPanel):

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

aqui está o 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>

além disso, quando executo no meu próprio navegador, funciona.

alguma idéia de por que isso está acontecendo? obrigado =)

Responder1

Receber um e-mail do cron é intencional. Você pode desativar isso adicionando >/dev/null 2>&1no final da linha. (Leia mais sobre o cron aqui: http://adminschoice.com/crontab-quick-reference)

Acho que o resto da questão poderia ser resolvido lendo um pouco mais sobre o wget. Você está tentando enviar a saída para um arquivo de log usando o redirecionamento de saída padrão. O conteúdo desse arquivo será apenas o que você normalmente veria na tela. O Wget não exibe o arquivo em si, portanto o redirecionamento de saída não funcionará aqui. A boa notícia é que o wget possui um switch integrado para gerenciar o arquivo de saída.

Experimente isto:

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

Responder2

O servidor pode estar procurando HTTP_USER_AGENT para bloquear ferramentas automatizadas. Se disponível para você, tente 'wget'. Ele suporta a -U or --user-agent=AGENTopção na linha de comando para ajudar seu script a parecer uma sessão válida do navegador Firefox/Interner Explorer.

Caso contrário, talvez seja necessário escrever um pequeno script para usar recursos mais robustos desse módulo Perl e fazer com que o cron job execute o script em vez de chamar get diretamente. Encontrei alguns exemplos disso aqui:http://perlmeme.org/tutorials/lwp.html

informação relacionada