Port en écoute
- !/bin/bash
- Version 2
- Validation ETH rsyslog
- Dimitri L
cd /opt/agarik/
- Création des listeners temporaires
netstat -an | grep -E '^tcp\s.*LISTEN' | awk '{print $1" "$4}'>/tmp/listener netstat -an | grep -E '^udp\s' | grep -v '[A-Z]' | awk '{print $1" "$4}'>>/tmp/listener netstat -an | grep -E '^unix.*LISTEN' | awk '{print $1" "$9}' | grep -v '^unix @'>>/tmp/listener cp /var/vision_client/data/system/listener.lst /tmp/listener-
- Vérification de la présence du fichier listener.lst
if [ ! -e /var/vision_client/data/system/listener.lst ]
then echo "Le fichier listener.lst n'existe pas." rm -f /tmp/listener /tmp/listener- exit
fi
- Vérification du nombre de ligne
wc -l /tmp/listener- | cut -c -2 > /tmp/nbr_ligne_ancien wc -l /tmp/listener | cut -c -2 > /tmp/nbr_ligne_new fichier1=$(cat /tmp/nbr_ligne_ancien) fichier2=$(cat /tmp/nbr_ligne_new)
if [ $fichier1 != $fichier2 ]
then echo "Le nombre de ligne de correspond pas." exit
fi
- Verification des ports
nbr_=$(awk 'NR==FNR {t[$0]++; next} !t[$0]' /tmp/listener- /tmp/listener > /tmp/resultat) nbr=$(cat /tmp/resultat) cut -d':' -f2 /tmp/resultat > /tmp/resultat1
while read line
do netstat -paunt | grep "$line" |grep ^'udp' | grep -E "\:$linespace:"| awk '{print $6}' | cut -d'/' -f2
done < /tmp/resultat1 > /tmp/fin
if [ "$(cat /tmp/fin)" != ]
then valider=oui while read line do if [ "${line}" != 'rsyslogd' ] then echo "Un port non lié à Rsyslog a été trouvé. Pas de validation." valider=non exit fi done < /tmp/fin
- Validation du test de supervision
if [ "$valider" = 'oui' ] then echo "Validation de l'alerte ETH." rm -f /var/vision_client/data/system/listener.lst else echo "Il n'y a rien à valider." fi else echo "Il n'y a rien à valider."
fi
- Supression des fichiers temporaires
rm -f /tmp/nbr_ligne_ancien /tmp/nbr_ligne_new /tmp/listener- /tmp/listener /tmp/resultat /tmp/resultat1 /tmp/fin