[BASH] telnet i czytaj banner

0

Witam, Chce stworzyc skrypt ktory laczy sie na adres IP z listy na port 22, czyta baner (zawierajacy slowo Cisco) i mowi czy to jest urzadzenie Cisco albo nie. Niestety nie potrafie tego ugryzc ponizszym skryptem. Ma ktos jakis pomysl ?

#!/bin/bash
port='22'
cat /opt/list | while read host
do nc -v $host $port & sleep 4 > /opt/output; kill $!;
if grep Cisco /opt/output;
then
echo "This is Cisco device" @ $(date +"%b %d %H:%M %Y") $host:$port [ OPEN ] | tee -a /opt/success_log.txt;
else
echo "This is not Cisco device"  @ $(date +"%b %d %H:%M %Y") $host:$port [ CLOSED ] | tee -a /opt/failure_log.txt;
fi
done

0

Co to znaczy nie potrafie ugryzc?

0
Patryk27 napisał(a):

Co to znaczy nie potrafie ugryzc?

ze nie dziala tak jak powinien?

1

Co to znaczy nie dziala jak powinien?
Co się dokładnie dzieje / nie dzieje?

To Tobie powinno zależeć na jak najdokładniejszym opisaniu problemu - przypuszczam, że większość forumowiczów nie ma pod ręką kilku urządzeń Cisco, aby przetestować Twój skrypt i dojść do tego, co Ty już wiesz.

0

Sorrki za pozna odpowiedz. Skrypt dziala do polowy tzn potrafi zrboic telnet na port 22 i wyczytac banner z listy wiec petla dziala. Jedyne co nie dziala to echo i grep - pokazuje ze wszystike hosty sa nieaktywne 'echo "This is not Cisco device" [ CLOSED ] ;'

0

Jesteś pewien, że w pliku /opt/output znajduje się odpowiednia zawartość?

1 użytkowników online, w tym zalogowanych: 0, gości: 1