Le 18/08/18 à 21:48, Bernard Schoenacker <bernard.schoenac...@free.fr> a écrit :
> bonjour, > > j'ai pris ce script bash et je n'arrive pas à le déverminer: > > https://blog.mirabellette.eu/index.php?article17/block-advertise-domain-name-with-unbound > > voici le début qui pose problème : > > ARRAY= > $(https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts > ) sur la page mentionnée y'a pas de $ > for i in "${ARRAY[@]}" et du coup je comprend pas la ligne précédente, pourquoi un for sur un tableau d'un seul élément ? Pas testé, mais amha, virer do/done et remplacer le wget par > do > wget -c -O w "$i" wget -c -O w https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts > > grep -v " #\|<td>\|<p>\|<meta>\|<link>\|<title>\|href\|title=\|=\|<" w > > adsList.txt rm -f w > dos2unix adsList.txt ça peut se faire sans fichier intermediaire avec wget -c -O - $url|grep -v "expression" > fichier donc ici tu peux te contenter de ces 3 lignes, en remplaçant la 3e par /etc/init, service ou systemctl suivant ta conf (et mettre le path complet de adsList.txt pour pouvoir lancer le script de n'importe où) : url=https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts wget -q -O - $url|sed -e '/^$/d; /#/d' > adsList.txt # reste à relancer unbound qui lit ce adsList.txt mais je crois qu'unbound ignore les lignes vides et celles qui commencent par #, ton script devrait pouvoir se résumer à url=https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn-social/hosts wget -q -O /path/to/adsList.tmp $url \ && [ -s /path/to/adsList.tmp ] \ && mv /path/to/adsList.tmp /path/to/adsList.txt \ && systemctl reload unbound \ && echo "Liste actualisée et rechargée" \ || echo "Un truc a foiré">&2 (l'enchaînement avec && est là au cas où le wget plante, pour ne pas risquer d'écraser l'ancien txt avec un truc vide, le test -s passe si le fichier n'est pas vide) Une remarque au passage, je ne laisserais pas qqun d'externe définir l'ip de localhost, ça me parait plus prudent d'ajouter un sed pour virer les premières lignes, ou ne garder que celles qui commencent par 0.0.0.0, en ajoutant si besoin un autre fichier txt pour unbound pour ces lignes (mais je crois qu'unbound résoud déjà localhost avec sa conf par défaut). wget -q -O - $url|sed -ne '/^0\.0\.0\.0/ p' > /path/to/adsList.tmp Celui qui fournit la liste pourra toujours rediriger localhost vers 0.0.0.0 mais au moins ça n'ira pas ailleurs et je vais m'en apercevoir rapidement. > > > merci pour le coup de puce > > slt > bernard > -- Daniel Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque ? Edgar Bergen