Como posso baixar um arquivo no momento em que ele se torna disponível no linux?

3

Como posso configurar algo em uma máquina Linux para que, no momento em que um arquivo em um servidor da web retorne algo diferente de um erro 404, ele seja baixado. Eu gostaria que ele parasse de verificar o momento em que o arquivo é iniciado para fazer o download com êxito, mas ainda tente novamente se ele falhar.

Eu tentei usar um cron job com o wget, mas não consigo descobrir como fazer com que ele não crie um arquivo vazio em um erro 404.

Isso é possível e como?

    
por geek1011 21.04.2016 / 01:23

2 respostas

2

Você pode verificar (com test -s ) se o arquivo tem conteúdo ou simplesmente usar o valor de retorno de wget . Faça o download para um arquivo temporário e somente se o teste for aprovado, copie para a saída real:

$ wget -q -O /tmp/a http://localhost/nonexistent && mv -v /tmp/a /tmp/b
$ wget -q -O /tmp/a http://localhost && mv -v /tmp/a /tmp/b
‘/tmp/a’ -> ‘/tmp/b’
$
    
por 21.04.2016 / 12:01
0

Você pode escrever um script bash que irá enviar o URL e depois verificar a saída. Se a saída contiver digamos "404", apague-a. Senão você tem seu arquivo, e você pode remover o script do cron (de dentro do script). Você também pode usar uma linguagem de script para resolver isso.

    
por 21.04.2016 / 02:22