-
Notifications
You must be signed in to change notification settings - Fork 2
/
clean_url.sh.18114.1659
executable file
·52 lines (35 loc) · 1.2 KB
/
clean_url.sh.18114.1659
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env bash
#Petit script pour suivre un redirect de type refresh dans un fichier HTML.
#Filtre aussi si le serveur ne répond pas
#ATTENTION: ça été fait pour une structure perso !
#faudra modifier le script pour d'autres structures
#zf181114.1651
#source: https://stackoverflow.com/questions/428109/extract-substring-in-bash
#note:
shopt -s extglob #demand au bash de supporter les pipe !
#récupère le HTML de l'URL
t1=`curl --max-time 1 $1 2>err.txt`
#traitement de la redirection faite à l'intérieur du HTML
t2=`echo $t1 |grep 'http-equiv="refresh"'`
tmp=${t2#*+(url|URL)=} # remove prefix ending in "url|URL="
b=${tmp%\"*} # remove suffix starting with "
if [ "`echo $b |grep -i http`" != "" ] #test si c'est une url relative ou absolue
then
r=$b
else
r=$1"/"$b
fi
#garde une trace du site redirigé pour debug
if [ "$b" != "" ]
then
echo -e "redirect: "$1", "$r >> redir.log
fi
#traitement des erreurs de connection au niveau du CURL
e=`cat err.txt |grep -e 'Connection timed out after' -e 'Could not resolve host' `
e="${e:1}" #enlève le 1er caractère !
if [ "$e" != "" ]
then
echo -e "err: "$1", "$e >> err.log
r=""
fi
echo $r