#1 Le 21/08/2016, à 11:03
- Boulvards
Script Bash Interrogation blacklist
Hello all,
Je viens vers vous car je manque d'inspiration pour un script que j'essaye de mettre en place en gros voici ce que ça donne actuellement :
# /bin/bash
serveur005=`dig 37.69.196.5.zen.spamhaus.org +short` #serveur005 5.196.69.37
if [ "$serveur005" = "127.0.0.4" ];
then
echo "Le serveur005 est blacklist chez CBL"
elif [ "$serveur005" = "127.0.0.2" ];
then
echo "Le serveur005 est blacklist chez Spamhaus"
else
echo "Le serveur005 est propre"
fi
Ca marche sans problème pour un serveur sauf que mon problème c'est que j'en ai une bonne vingtaine maintenant et je vois pas comment obtenir un script pas trop lourd comme par exemple déclarer ttes les variables en début de fichier puis les interroger avec un seul if/elif/else. Une idée ?
Hors ligne
#2 Le 21/08/2016, à 11:10
- pingouinux
Re : Script Bash Interrogation blacklist
Bonjour,
Peux-tu montrer un exemple avec deux serveurs, pour voir ce qui change ?
Hors ligne
#3 Le 21/08/2016, à 16:24
- Watael
Re : Script Bash Interrogation blacklist
salut,
je ne suis pas sûr d'avoir bien compris ta requête.
pour itérer sur les éléments d'une variable (il serait d'ailleurs peut-être plus propre d'utiliser une "variable" tableau/liste), on utilise une boucle for.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#4 Le 22/08/2016, à 08:13
- Boulvards
Re : Script Bash Interrogation blacklist
Pour l'instant si je mets deux serveurs :
# /bin/bash
serveur005=`dig 37.69.196.5.zen.spamhaus.org +short` #serveur005 5.196.69.37
if [ "$serveur005" = "127.0.0.4" ];
then
echo "Le serveur005 est blacklist chez CBL"
elif [ "$serveur005" = "127.0.0.2" ];
then
echo "Le serveur005 est blacklist chez Spamhaus"
else
echo "Le serveur005 est propre"
fi
serveur004=`dig 33.69.196.5.zen.spamhaus.org +short` #serveur004 5.196.69.33
if [ "$serveur004" = "127.0.0.4" ];
then
echo "Le serveur004 est blacklist chez CBL"
elif [ "$serveur004" = "127.0.0.2" ];
then
echo "Le serveur004 est blacklist chez Spamhaus"
else
echo "Le serveur004 est propre"
fi
et la même chose pour les 18 autres serveurs, j'atteinds facilement un script de 400 lignes alors que, ce que je chercherai à faire serait plutot :
serveur005=`dig 37.69.196.5.zen.spamhaus.org +short` #serveur005 5.196.69.37
serveur004=`dig 33.69.196.5.zen.spamhaus.org +short` #serveur004 5.196.69.33
if [ "$serveur*" = "127.0.0.4" ];
then
echo "Le $serveur* est blacklist chez CBL"
elif [ "$serveur*" = "127.0.0.2" ];
then
echo "Le $serveur* est blacklist chez Spamhaus"
else
echo "Le $serveur* est propre"
fi
Bien entendu ce code ne fonctionne pas mais je cherche un équivalent.
Comment tu t'y prendrai avec tableau + for ? Tu as un exemple ?
Dernière modification par Boulvards (Le 22/08/2016, à 08:13)
Hors ligne
#5 Le 22/08/2016, à 09:11
- pingouinux
Re : Script Bash Interrogation blacklist
Je n'ai pas testé, mais tu peux essayer quelque chose de ce genre
while read num ip
do
serveur=`dig $ip.69.196.5.zen.spamhaus.org +short`
if [ "$serveur" = "127.0.0.4" ];
then
echo "Le serveur$num est blacklist chez CBL"
elif [ "$serveur" = "127.0.0.2" ];
then
echo "Le serveur$num est blacklist chez Spamhaus"
else
echo "Le serveur$num est propre"
fi
done <<<"005 37
004 33"
Ajouté : La liste en fin de script correspond à ceci
serveur005=`dig 37.69.196.5.zen.spamhaus.org +short`
serveur004=`dig 33.69.196.5.zen.spamhaus.org +short`
Dernière modification par pingouinux (Le 22/08/2016, à 09:34)
Hors ligne
#6 Le 22/08/2016, à 14:18
- Watael
Re : Script Bash Interrogation blacklist
Comment tu t'y prendrais avec tableau + for ? Tu as un exemple ?
mapfile nameNip < <(dig 3{3,7}.69.196.5.zen.spamhaus.org +short)
test -n "$nameNip" || {echo "no result" >&2; exit 1;}
for i in "${nameNip[@]}"
do
[[ $i == 127.0.0[23] ]] && echo "$i blacklisté shez SpamHaus" || echo "$i est OK !"
done
la description reste vague, alors ce script peut ne pas répondre complètement à tes attentes.
que retourne dig ? je n'obtiens aucun résultat.
tu n'interroge que ces deux serveurs spamhaus ?
Dernière modification par Watael (Le 22/08/2016, à 14:20)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne