Estou usando o wgetprograma, mas quero que ele não salve o arquivo html que estou baixando. Quero que seja descartado depois de recebido. Como faço isso?
Isso não salva a página, mas envia um email para mim. Também é possível desativar o email?
trante 7/09/13
32
Se você não deseja salvar o arquivo e aceitou a solução de baixar a página /dev/null, suponho que esteja usando o wget para não obter e analisar o conteúdo da página .
Se sua real necessidade for acionar alguma ação remota, verifique se a página existe e assim por diante acho que seria melhor evitar o download da página do corpo html.
Brinque com as wgetopções para recuperar apenas o que você realmente precisa, como cabeçalhos http, status da solicitação etc.
supondo que você precise verificar se a página está correta (ou seja, o status retornado é 200), você pode fazer o seguinte:
Estou confuso. --no-cachena página de manual diz que faz com que o wget "envie ao servidor remoto uma diretiva apropriada ('Pragma: no-cache') para obter o arquivo do serviço remoto"
Gaia
Ele diz ao servidor que seu cliente não deseja uma versão em cache do arquivo .. queremos obter a última versão do recurso que estamos solicitando
Eu gosto mais dessa opção. Vamos ver o que acontece, mas não o salva. Os comutadores são especificamente qmodo silencioso (não produz progresso e outras informações) e O-(grava o documento recuperado no console).
Octopus
9
Outra alternativa é usar uma ferramenta como a curlqual, por padrão, gera o conteúdo remoto, em stdoutvez de salvá-lo em um arquivo.
Confira a opção "-spider". Eu o uso para garantir que meus sites estejam ativos e me envie um e-mail, se não estiverem. Esta é uma entrada típica do meu crontab:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Se você precisa rastrear um site usando o wget e deseja minimizar a rotatividade de disco ...
Para uma caixa * NIX e uso wget, sugiro pular a gravação em um arquivo. Percebi na minha caixa do Ubuntu 10.04 que wget -O /dev/nullfez com que o wget interrompesse os downloads após o primeiro download.
Notei também que wget -O real-filefaz com que o wget esqueça os links reais na página. Ele insiste em index.htmlestar presente em cada página. Tais páginas nem sempre podem estar presentes e o wget não se lembra dos links que viu anteriormente.
Para rastrear sem gravar no disco, o melhor que criei é o seguinte
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Observe que não há -O fileopção. O wget gravará no diretório $ PWD. Nesse caso, é um sistema de arquivos tmpfs somente para RAM . A escrita aqui deve ignorar a rotatividade do disco (dependendo do espaço de troca) E acompanhar todos os links. Isso deve rastrear o site inteiro com êxito.
/dev/null
coisa funcionaria?Respostas:
Você pode redirecionar a saída do wget para / dev / null (ou NUL no Windows):
O arquivo não será gravado no disco, mas será baixado.
fonte
Se você não deseja salvar o arquivo e aceitou a solução de baixar a página
/dev/null
, suponho que esteja usando o wget para não obter e analisar o conteúdo da página .Se sua real necessidade for acionar alguma ação remota, verifique se a página existe e assim por diante acho que seria melhor evitar o download da página do corpo html.
Brinque com as
wget
opções para recuperar apenas o que você realmente precisa, como cabeçalhos http, status da solicitação etc.supondo que você precise verificar se a página está correta (ou seja, o status retornado é 200), você pode fazer o seguinte:
se você deseja analisar os cabeçalhos retornados pelo servidor, faça o seguinte:
Veja a página de manual do wget para mais opções para brincar.
Veja
lynx
também, como uma alternativa ao wget.fonte
--no-cache
na página de manual diz que faz com que o wget "envie ao servidor remoto uma diretiva apropriada ('Pragma: no-cache') para obter o arquivo do serviço remoto"$ wget http://www.somewebsite.com -O foo.html --delete-after
fonte
--delete-after
opção é a opção quando você precisa fazer o download recursivamente, mas deseja descartar o conteúdo real.-O /dev/null
Caso você também queira imprimir no console, o resultado pode ser:
fonte
q
modo silencioso (não produz progresso e outras informações) eO-
(grava o documento recuperado no console).Outra alternativa é usar uma ferramenta como a
curl
qual, por padrão, gera o conteúdo remoto, emstdout
vez de salvá-lo em um arquivo.fonte
Confira a opção "-spider". Eu o uso para garantir que meus sites estejam ativos e me envie um e-mail, se não estiverem. Esta é uma entrada típica do meu crontab:
fonte
Se você precisa rastrear um site usando o wget e deseja minimizar a rotatividade de disco ...
Para uma caixa * NIX e uso
wget
, sugiro pular a gravação em um arquivo. Percebi na minha caixa do Ubuntu 10.04 quewget -O /dev/null
fez com que o wget interrompesse os downloads após o primeiro download.Notei também que
wget -O real-file
faz com que o wget esqueça os links reais na página. Ele insiste emindex.html
estar presente em cada página. Tais páginas nem sempre podem estar presentes e o wget não se lembra dos links que viu anteriormente.Para rastrear sem gravar no disco, o melhor que criei é o seguinte
Observe que não há
-O file
opção. O wget gravará no diretório $ PWD. Nesse caso, é um sistema de arquivos tmpfs somente para RAM . A escrita aqui deve ignorar a rotatividade do disco (dependendo do espaço de troca) E acompanhar todos os links. Isso deve rastrear o site inteiro com êxito.Depois, é claro,
fonte
Use a opção --delete-after, que exclui o arquivo após o download.
Edit: Opa, acabei de perceber que já foi respondido.
fonte
De acordo com o documento de ajuda (wget -h), você pode usar a opção --spider para pular o download (versão 1.14).
fonte