@ BBT1
Oui, je suis assez d’accord avec ce que tu dis sur les habitudes et les règles, tu as bien fait de me dire ta façon de penser, que le script soit petit ou pas, ça donne un cadre (argumenté) plus général pour s’aventurer à écrire des scripts plus ambitieux.
J’ai fait un copier / coller de ton script aprés avoir sauvegardé le mien et les rep/fichier associés, puis j’ai testé.
Il a marché du premier coup . J’ai ensuite supprimé le ${fichier_ip} pour faire des tests ( c’est incontournable à mon sens, sinon …) et ça a planté sur le :
derniere_ip=$(tail -1 ~/${rep}/${fichier_ip}|cut -d' ' -f5)
normal, puisque le fichier n’existe pas.
J’ai modifié cette ligne en conséquence tout conservant l’esprit de tes modifs (parce qu’il est bon) comme ceci :
derniere_ip=$(tail -1 ~/${rep}/${fichier_ip} 2>/dev/null | sed 's/^.*[[:blank:]]\+//')
(j’ai aussi été obligé de remplacer le cut par un sed parce que le cut suivant ne fonctionne pas :
derniere_ip=$(tail -1 ~/${rep}/${fichier_ip} 2>/dev/null | cut -d'\t ' -f2)
mais ça m’est égal le sed me convient parfaitement. )
Donc pour résumer, la seule modif sur tes modifs est ceci :
derniere_ip=$(tail -1 ~/${rep}/${fichier_ip} 2>/dev/null | sed 's/^.*[[:blank:]]\+//')
J’ai aussi fait le test de supprimer le ${rep} --> pas de pb
J’ai testé tes :
echo "122.34.2" | egrep '^([[:digit:]]+\.){3}[[:digit:]]+$';echo $?
1
echo "122.34.2.1" | egrep '^([[:digit:]]+\.){3}[[:digit:]]+$';echo $?
122.34.2.1
0
directement sur le shell --> impeccable
Je ne connaissais pas cette manière de multiplier un test comme ça {3}, c’est bien commode … sinon curl je connaissais pas vraiment ( faut que j’approfondisse ya de la matière )
Et oui ton :
sed 's|^.*>\(.*\)</td>$|\1|'
est bien joli par rapport au mien ( et beaucoup + lisible, pourtant je connaissais cette possibilité de changer / en | par exemple mais j’utilisais jamais ça ?)
Trés juste aussi la redirection des echo d’erreurs >&2 , en effet, si l’on redirige la sortie std du script, les erreurs iront tout de même sur la sortie d’erreur, ce qui n’aurait pas été le cas dans la première version que j’ai donné.
Trés bien aussi la modif des options de wget pour pouvoir filtrer directement sur stdout sans passer par un fichier intermédiaire (source de problèmes lors de sa suppression).
Voilà. Je laisse tourner tranquille 1 semaine et je modifierai mon post initial en conséquence. Edit: post initial modifié le 19/11/2011
Franchement BBT1 merci bien pour ce cours gratuit.
Yes cool are the Dragons
Notes : en fait c’est suite à la reception du mail suivant que j’ai eu l’idée de ce script, extrait :
[quote=“SECUVAD”][…] Nous vous rappelons quelques éléments techniques de votre connexion :
* le 26/06/2007 à 13:58:00 : Acceptation des CGV depuis l'adresse 'www.xxx.yyy.zzz'
* le 27/06/2010 à 00:02:00 : Reconduction Abo mensuel à 29,90€/mois après offre 1€ les 7 jours du 19/06/10 pour un montant de 29.90 EUR depuis l'adresse 'www.xxx.yyy.zzz'
À ce jour, vous êtes donc redevable à l’égard de la société SARL INTERNET MACHIN TRUC BIDULE d’une somme totale de :
En conséquence, et en application des dispositions de l’article 1139 du Code civil, nous vous mettons en demeure de régler sans délai la somme de 29.00 EUR.
[…]
[/quote]
On voit bien dans cet extrait qu’ils disent que j’avais la même IP à 3 ans d’interval (j’ai masqué les IP parce que c’est pas vraiment utile, mais c’était les mêmes), ce qui est débile avec l’offre Orange que j’avais.( j’ai changé le nom précis de la société en MACHIN TRUC BIBULE parce que bon …)
Je me suis fait avoir, j’ai payé, mais on ne pourra plus m’affirmer que tel jour j’avais telle IP parce que si c’est pas vrai … ça va pas ce passer comme ça