Desejo buscar o conteúdo de um script PHP no meu servidor duas vezes por dia, alterando uma variável de consulta lang
para definir o idioma que queremos e salvar esse conteúdo em dois arquivos específicos do idioma. Este é o meu crontab:
*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"
O problema é que apenas a primeira linha de comando do wget está sendo executada (ou para ser mais preciso: o único arquivo que está sendo gravado é /path/to/file-sv.sql
). Se eu alternar a segunda e a terceira linha, /path/to/file-en.sql
será gravada. A primeira linha sempre é executada conforme o esperado, não importa onde esteja.
Eu tentei usar lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql
sem sucesso; ainda apenas a primeira linha do lince foi executada com sucesso. Mesmo misturar wget e lynx não mudou isso!
Ficando meio desesperado! Estou esquecendo de algo? Existem milhares de artigos sobre o crontab (combinado com) wget ou lynx, mas tudo parece cobrir configurações e sintaxe básicas. Alguém tem idéia do que estou fazendo de errado?
Obrigado
Alexander
Respostas:
Tente adicionar nova linha no final do seu crontab.
fonte
Há algo errado no texto. Edite seu crontab no vim e mostre caracteres invisíveis.
Você deve poder ver e corrigi-lo.
fonte
# crontab -e
EDITOR=vim crontab -e
$
no final de cada linha?Tente adicionar redirecionamento, para depurar o crontab (ou ler o correio raiz):
Execute também 'wget -O /path/to/file-en.sql " http://mydomain.com/path/?lang=en "' no console.
Também use 'crontab -e' para validar o novo crontab.
Além disso, tente excluir a linha que não está funcionando e digite-a novamente no teclado.
Faça o backup da corntab e execute o comando:
fonte
/tmp/crontab_ouptput 2> /tmp/crontab_error
apenas funciona para a primeira linha. A execução do comando no console funciona perfeitamente. Reescreva o arquivo inteiro com minhas próprias mãos, mas nada mudou.Passei algum tempo tentando as respostas acima (adicionando novas linhas, excluindo novas linhas etc.) em um sistema executando cronie . Finalmente encontrado, existe um erro no cronie 1.5.3 que executa apenas o primeiro trabalho do cron para cada usuário . Foi corrigido na 1.5.4
https://github.com/cronie-crond/cronie/issues/30
Espero que isso economize alguém algum tempo ...
fonte