Script Shell para CRON que chama URL e salva o arquivo

Script Shell para CRON que chama URL e salva o arquivo

Insiro manualmente um URL em um navegador que chama uma página que possui uma função GET que solicita diretamente que eu salve um arquivo. Gostaria de automatizar com um cron job em um script estas ações:

  • Chame o URL
  • Salve o arquivo em uma pasta específica

Alguém pode ajudar a escrever o roteiro? Posso fornecer o URL de forma privada para testar o comportamento.

Responder1

Uma maneira de baixar uma URL sem precisar usar uma interface de usuário (texto ou GUI) é usar wgettodos os parâmetros necessários (como desejar) como um cron job.

Sobre wget

Um exemplo de URL único (com nome de saída mesclado com um carimbo de data/hora, para enriquecer a resposta, poderia ser um nome estático):

 wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
 wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab

nota: no cron você deve usar "\%" (como na segunda linha acima) em vez de apenas "%" (como na primeira linha acima), porque o cron interpreta o caractere "porcentagem".

onde: se divide em:-O "/home..../date...-theRestOfTheName"

  • caminho absoluto (o cron pode ter seu próprio caminho configurado, portanto, do ponto de vista prático, geralmente é favorável ter o caminho de seu interesse especificado em cada comando)

  • execução em tempo real datecom saída configurada como um tipo de carimbo de data e hora legível por humanos

  • o resto do nome do arquivo de destino

-bpede ao wget para trabalhar em segundo plano, com login no syslog.

Opcionalmente, você pode usar uma lista de URLs de um arquivo ( -i filename). Você também pode brincar com o wget e sua página de manual ( man wget) - ela é relativamente curta e pode lhe dar muitas ideias.

Sobre o cron

Observe que o cron pressupõe que sua máquina esteja ligada o tempo todo: o cron não acompanha os trabalhos durante o tempo em que a máquina esteve desligada. Editando o cron como usuário atual

crontab -e

Adicione uma linha de configuração que especifica a frequência de execução do comando (instruções simples são exibidas como um comentário nas linhas superiores do editor crontab, leia-o). Para correr a cada 5 minutos no domingo, você escreveria:

# m  h  dom mon dow   command
*/5  *   *   *   0    wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b

informação relacionada