Como identificar site em 404 que estão em uma lista txt

1. Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 11:22h

Não achei a categoria Squid na criação do tópico.

Seria algo assim, leia o arquivo tal => identificou site 404 => Remove URL da lista.txt

Exemplo de 404:

https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts


  


2. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 11:40h

curl -I https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts 2>/dev/null | head -n 1 | cut -d$' ' -f2


3. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 12:46h

amarildosertorio escreveu:

curl -I https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts 2>/dev/null | head -n 1 | cut -d$' ' -f2


Se o arquivo lista.txt esta assim:
site1
site2
site3
...

Seria algo assim:

curl -I /etc/squid3/lista.txt 2>/dev/null | head -n 1 | cut -d$' ' -f2

Não funcionou desta forma com arquivo txt e nem removeu o conteúdo.





4. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 13:18h

meianoite escreveu:

amarildosertorio escreveu:

curl -I https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts 2>/dev/null | head -n 1 | cut -d$' ' -f2


Se o arquivo lista.txt esta assim:
site1
site2
site3
...

Seria algo assim:

curl -I /etc/squid3/lista.txt 2>/dev/null | head -n 1 | cut -d$' ' -f2

Não funcionou desta forma com arquivo txt e nem removeu o conteúdo.




$ cat /tmp/lista.txt
https://www.vivaolinux.com.br
https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts
https://www.google.com.br
https://www.smashingmagazine.com/2010/05/10-fresh-high-quality-free-fonts


# vim expurgo.sh
#/bin/bash

LIST=/tmp/lista.txt
LISTEMP=/tmp/listatemp.txt

for i in $(cat $LIST); do
CURL=$(curl -I $i 2>/dev/null | head -n 1 | cut -d$' ' -f2;)
if [ $CURL == 404 ]; then
cp -pa $LIST $LISTEMP
echo "REMOVE" $i
grep -v "$i" $LISTEMP > $LIST
else
echo "PULA" $i
fi

done


$ bash expurgo.sh
PULA https://www.vivaolinux.com.br
REMOVE https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts
PULA https://www.google.com.br
REMOVE https://www.smashingmagazine.com/2010/05/10-fresh-high-quality-free-fonts

$ cat /tmp/lista.txt
https://www.vivaolinux.com.br
https://www.google.com.br




5. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 16:20h

amarildosertorio escreveu:

meianoite escreveu:

amarildosertorio escreveu:

curl -I https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts 2>/dev/null | head -n 1 | cut -d$' ' -f2


Se o arquivo lista.txt esta assim:
site1
site2
site3
...

Seria algo assim:

curl -I /etc/squid3/lista.txt 2>/dev/null | head -n 1 | cut -d$' ' -f2

Não funcionou desta forma com arquivo txt e nem removeu o conteúdo.




$ cat /tmp/lista.txt
https://www.vivaolinux.com.br
https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts
https://www.google.com.br
https://www.smashingmagazine.com/2010/05/10-fresh-high-quality-free-fonts


# vim expurgo.sh
#/bin/bash

LIST=/tmp/lista.txt
LISTEMP=/tmp/listatemp.txt

for i in $(cat $LIST); do
CURL=$(curl -I $i 2>/dev/null | head -n 1 | cut -d$' ' -f2;)
if [ $CURL == 404 ]; then
cp -pa $LIST $LISTEMP
echo "REMOVE" $i
grep -v "$i" $LISTEMP > $LIST
else
echo "PULA" $i
fi

done


$ bash expurgo.sh
PULA https://www.vivaolinux.com.br
REMOVE https://www.smashingmagazine.com/2010/05/20-fresh-high-quality-free-fonts
PULA https://www.google.com.br
REMOVE https://www.smashingmagazine.com/2010/05/10-fresh-high-quality-free-fonts

$ cat /tmp/lista.txt
https://www.vivaolinux.com.br
https://www.google.com.br




1- O for não vai dar estouro de pilha quando à quantidade de entradas for muito grande?

Ex: 80 mil linhas

2- Não seria melhor usar o xargs para essa finalidade?




6. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 16:26h

meianoite escreveu:

1- O for não vai dar estouro de pilha quando à quantidade de entradas for muito grande?

Ex: 80 mil linhas

2- Não seria melhor usar o xargs para essa finalidade?



R1- Você tem 80 mil linhas no seu arquivo? Teste e otimize para a sua necessidade.

R2- Estou testando linha a linha. Onde ele se encaixaria?


7. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 16:36h

O script foi uma sugestão com base na necessidade apresentada. Há N formas de se fazer isso, mas como existe a necessidade de testar link a link para identificar o 404 não pensei em algo mais performático.


8. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 16:41h

Provavelmente você consiga otimizar com o xargs.

Bom trabalho meu camarada.

Abraço!


9. Re: Como identificar site em 404 que estão em uma lista txt

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/02/2018 - 16:46h

amarildosertorio escreveu:

O script foi uma sugestão com base na necessidade apresentada. Há N formas de se fazer isso, mas como existe a necessidade de testar link a link para identificar o 404 não pensei em algo mais performático.




Seria algo assim? Tem erros nos comandos abaixo:

CURL=$(curl -I '/etc/squid3/lista.txt' 2>/dev/null | head -n 1 | cut -d$' ' -f2)

xargs -t -P0 -L1 sed '/etc/squid3/lista.txt' / '/etc/squid3/lista1.txt' < $CURL

O sed seria melhor do que o cp?


Teria que identificar o site ( echo "PULA" $i) e jogar numa outra lista temporária ou usar o sed?







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts