Como recuperar o tamanho de um site?

1

Gostaria de saber o tamanho dos documentos hospedados em um site.

Uma solução poderia ser baixar todo o conteúdo deste site com ferramentas como wget -r . No entanto, esse site específico hospeda muitos arquivos enormes e a quantidade de dados provavelmente excede 3To. Não posso me dar ao luxo de usar essa largura de banda e hospedar tantos dados.

Uma segunda solução poderia ser conectar-se via ftp a este site. Mas eu não tenho acesso ftp a este servidor.

Existe outra solução para o meu problema? Para resumir, quero saber qual é o tamanho de um diretório hospedado em um site e só tenho permissão para ler e navegar.

P-S: Estou usando o Linux (Debian) e agradeço em particular todas as soluções compatíveis com ele.

    
por ppr 18.11.2015 / 11:50

2 respostas

1

Como observado, você poderia usar o item Content-Length de um cabeçalho HTTP. Várias ferramentas podem obter as informações do cabeçalho, por exemplo,

$ lynx -dump -head http://localhost
HTTP/1.1 200 OK
Date: Wed, 18 Nov 2015 11:21:40 GMT
Server: Apache
Last-Modified: Sun, 10 Nov 2013 20:02:38 GMT
ETag: "bf2-4ead818dfd380"
Accept-Ranges: bytes
Content-Length: 3058
MS-Author-Via: DAV
Content-Type: text/html
Connection: close

No entanto, você ainda terá que recuperar uma determinada página da web para extrair URLs dela. O Lynx fornece uma lista no final de um despejo, por exemplo,

$ lynx -dump http://localhost
...
References

   1. http://localhost/NetBeans-ROR-plugin/updates/updates.xml
   2. http://localhost/webcal
   3. http://localhost/changepassword
   4. http://localhost/profilemanager
   5. http://www.apple.com/server/

Juntando tudo isso, seria possível escrever um script que recuperasse URLs de uma página, depois passasse pela lista de URLs referenciados, primeiro fazendo uma "cabeça" (provavelmente mais rápida do que lendo toda a página referenciada), inspecionando tanto o Content-Length e Content-Type para ver se essa informação está disponível e, em caso afirmativo, se ela aponta para outra página da Web para rastrear.

Para referência:

Como você deseja apenas tamanhos , seu script pode simplesmente usar as informações de cabeçalho quando aponta para itens não HTML em que o comprimento do conteúdo é conhecido.

    
por 18.11.2015 / 12:28
0

Use o curl com a opção -I para obter apenas o cabeçalho da resposta (ou seja, sem o download do arquivo)

$ curl -sI REMOTE_FILE_LOCATION | grep Content-Length

ou se você quiser extrair apenas o número

$ curl -sI REMOTE_FILE_LOCATION | grep Content-Length | cut -d' ' -f2

curl é normalmente instalado por padrão no Linux, então você não precisa instalá-lo. Para usar lynx da resposta anterior, você precisará fazer o download e instalá-lo.

    
por 18.11.2015 / 15:18

Tags