Czesc,
jestem tutaj nowy (jak tez w linuxie) i potrzebowalbym pomocy z napisaniem prostego skryptu, ktory z listy serwerow w pliku (badz taka liste generowalby na biezaco za pomoca linijki kodu, ktora juz mam) odpytywalby kazdy z serwerow przez telnet (po danym porcie) i w razie niepolaczenia przez np. 5 czy 10 sekund, pisalby blad, a w razie poprawnego polaczenia pisalby ok.
[Bash]
Moderatorzy: Moderatorzy, Administratorzy
Re: [Bash]
pliki: lista_serwerow telnet_test.sh
Do pliku lista_serwerow wrzucasz listę serwerów po IP, jeden pod drugim
to pliku telnet_test.sh Wrzucasz
Jesli inny port jak 25 - SMTP - na tym testowałem, to sobie zmień na inny.
Zapisz, nadaj prawa wykonywania i uruchom
Pozdr.
Do pliku lista_serwerow wrzucasz listę serwerów po IP, jeden pod drugim
to pliku telnet_test.sh Wrzucasz
Kod: Zaznacz cały
#!/bin/bash
SERVER_LIST='lista_serwerow'
TELNET_PORT='25'
for SERVER in $(cat ${SERVER_LIST});do
netcat -z ${SERVER} ${TELNET_PORT}
if [ $? -eq 0 ]
then
echo "Telnet serwera ${SERVER} na porcie ${TELNET_PORT} DZIALA"
else
echo "Telnet serwera ${SERVER} na porcie ${TELNET_PORT} !!! NIE DZIALA !!!"
fi
done
Zapisz, nadaj prawa wykonywania
Kod: Zaznacz cały
chmod +x telnet_test.sh
Kod: Zaznacz cały
./telnet_test.sh
Re: [Bash]
A czy można to jakoś uprościć, żeby nie tworzyć pliku z serwerami, a żeby lista ta była generowana automatycznie w tym skrypcie, korzystając z innego skryptu, ktory juz mam? - to jest linijka kodu.
I czy moglbym uzyc telnet zamiast netcat? (nie moge uzyc netcat)
Jak polacze sie przez telnet z serwerem, to otrzymuje:
Trying ip_serwera...
Connected to ip_serwera
Escape character is '^]'.
SSH-2.0-6.3.8.79 SSH Tectia Server
Connection closed by foreign host.
jak nie da sie polaczyc, to jest tylko trying ip_serwera...
jak to wstawic do warunku? i jak ustawic jakis timeout dla sytuacji, kiedy nie chce sie polaczyc?
I czy moglbym uzyc telnet zamiast netcat? (nie moge uzyc netcat)
Jak polacze sie przez telnet z serwerem, to otrzymuje:
Trying ip_serwera...
Connected to ip_serwera
Escape character is '^]'.
SSH-2.0-6.3.8.79 SSH Tectia Server
Connection closed by foreign host.
jak nie da sie polaczyc, to jest tylko trying ip_serwera...
jak to wstawic do warunku? i jak ustawic jakis timeout dla sytuacji, kiedy nie chce sie polaczyc?
Re: [Bash]
Kod: Zaznacz cały
#!/bin/bash
SERVER_LIST='192.168.0.216 192.168.0.222'
TELNET_PORT='25'
for SERVER in ${SERVER_LIST};do
test "$(echo exit|telnet ${SERVER} 25 2>/dev/null |grep -i connected)"
if [ $? -eq 0 ]
then
echo "Telnet serwera ${SERVER} na porcie ${TELNET_PORT} DZIALA"
else
echo "Telnet serwera ${SERVER} na porcie ${TELNET_PORT} !!! NIE DZIALA !!!"
fi
done
Re: [Bash]
tylko pojawia się tutaj problem w sytuacji, kiedy serwer telnet nie odpowiada - da sie zrobic jakis timeout, zeby po krotkim czasie (np. 3-5 sekund) zwracal, ze telnet nie odpowiada?
Re: [Bash]
Lol, Zrobisz coś sam, czy na gotowca w 100% czekasz? Bo to trochę żałosne się zaczyna robić. Dałem Tobie dwa gotowce, zrób coś sam.