2009-09-29 4 views
7

Sprawdziłem już This Question, ale nie mogłem znaleźć tego, czego szukam. Używam systemu Windows (klienta), a serwer jest starszym typem serwera typu mainframe.Telnet automatyzacja/skryptowanie

Zasadniczo potrzebuję napisać skrypt, kod Pythona lub cokolwiek innego, aby wysłać pewne znane polecenia do serwera za pośrednictwem telnetu, a najlepiej wychwycić dane wyjściowe. Następnie wróć po zakończeniu.

Jakie jest najlepsze podejście?

Odpowiedz

19

Istnieje połączenie python library for telnet odczytywane i zapisywane z/do połączenia telnet.

Sprawdź link. Ma kilka podstawowych przykładów tego, czego szukasz.

Oto przykład z linku:

import getpass 
import sys 
import telnetlib 

HOST = "localhost" 
user = raw_input("Enter your remote account: ") 
password = getpass.getpass() 

tn = telnetlib.Telnet(HOST) 

tn.read_until("login: ") 
tn.write(user + "\n") 
if password: 
    tn.read_until("Password: ") 
    tn.write(password + "\n") 

tn.write("ls\n") 
tn.write("exit\n") 

print tn.read_all() 

To łączy się z serwerem telnet. Wysyła twoje poświadczenia logowania, a następnie wykonuje polecenie unix ls. Następnie kończy sesję i drukuje wszystkie dane wyjściowe z serwera telnet.

+4

Tylko uwaga, że ​​na moim serwerze, musiałem dodać '\ r' zamiast' \ n'. Zajęło mi trochę czasu, żeby to debugować. – Ayman

0

Nigdy go nie użyłem, ale może potrzebne jest pexpect?

"Pexpect mogą być wykorzystane do automatyzacji interaktywnych aplikacji takich jak ssh, ftp, passwd , telnet, etc."

+0

PExpect nie działa na klientach Windows. Daje błąd, że potrzebuje systemu podobnego do UNIX. – Ayman

+1

Powinienem uważniej przeczytać pytania, przepraszam! :) – Kylotan

3

Możesz również rozważyć Exscript. Upraszcza niektóre proste zadania, ale dla bardziej skomplikowanych istnieje dodatkowy poziom abstrakcji (Exscript jest sam w sobie językiem skryptowym). Tak czy inaczej - warto sprawdzić.