Dentro de uma tarefa cron, %
é especial e deve ser de escape. Além disso, a sintaxe backquote é melhor evitada. Eu sugeriria algo como o seguinte:
wget --post-data="start=$(date ... +\%Y\%m\%d\%H)&end=$(date ... +\%Y\%m\%d\%H)&..."
Esta pergunta já tem uma resposta aqui:
Para um projeto, quero usar o wget em um cron para baixar um arquivo de dados. Na instrução wget, uma data de início e término precisa ser definida no seguinte formato:
wget --post-data="stns=235&vars=TEMP&start=YYYYMMDDHH&end=YYYYMMDDHH"
Como eu quero que isso seja feito por um cron job, eu gostaria que a data inicial e final fosse definida automaticamente. Mais especificamente, gostaria que a data inicial fosse definida como "1 hora atrás" e a data final "agora".
Houve uma pergunta semelhante na postagem Usando data -1day com wget . Aqui a solução sugerida era colocar as variáveis entre aspas simples, mas isso não funcionou. Por exemplo:
"[...]start=''date -d yesterday +%Y%m%d%H'&end='date +%Y%m%d%H'"
Eu simplesmente recebi o erro "Erro 400: Pedido incorreto" ao tentar executar a instrução wget no terminal.
Obrigado.
Tags cron wget date shell-script