Script de shell para verificar o URL

3

Eu estou tentando escrever um script de shell para verificar a existência de um diretório específico em um nome de domínio específico. Por exemplo, eu tenho um site chamado www.example.com . Quero verificar se a página www.example.com/testpage existe ou não. Eu tenho um arquivo de texto contendo uma lista de nomes de diretório, um por linha, que deve ser substituído pelo nome testpage . Eu quero que o script selecione cada um desses nomes de diretório, anexe-o ao url www.example.com e valide-o. Como posso começar a escrever meu roteiro?

    
por Anandu M Das 13.10.2014 / 07:48

1 resposta

2

Vamos examinar um exemplo.

Arquivo relative_urls.list :

> cat relative_urls.list 
/users/449/oli
/users/449
/help/badges
/help/badges/185/curious
/unanswered
/questions/tagged/12.04
/questions/tagged/boot
/questions/tagged/oracle
/questions/tagged/internet_explorer
/questions/tagged/outlook

Gostaríamos de verificar se esses documentos estão disponíveis no site link .

Possível solução:

> cat relative_urls.list |while read i ; do curl --head -s "http://askubuntu.com"$i |grep -q '^HTTP.*200' && echo "OK '$i'" ||echo "fail '$i'" ; done

E o resultado é:

OK '/users/449/oli'
fail '/users/449'
OK '/help/badges'
OK '/help/badges/185/curious'
OK '/unanswered'
OK '/questions/tagged/12.04'
OK '/questions/tagged/boot'
OK '/questions/tagged/oracle'
fail '/questions/tagged/internet_explorer'
fail '/questions/tagged/outlook'

Se você preferir outra definição de disponibilidade de url, poderá alterar o comando grep para algo mais relevante para suas condições.

O importante é que curl mostra se uma URL é servida por um servidor da web. Não existe um método confiável para determinar a existência do diretório no sistema de arquivos do servidor web via http.

    
por Hln 26.04.2015 / 14:48