
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 wget
todos 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
date
com saída configurada como um tipo de carimbo de data e hora legível por humanoso resto do nome do arquivo de destino
-b
pede 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