Как открыть и найти файл в сеансе telnet с помощью Python

Я использую следующий код для входа на сервер и перехода в определенный каталог (где находится файл журнала, в котором я хочу найти строку). Я сделал это с помощью модуля Paramiko (ssh), довольно просто. Но в модуле telnetlib не так много функций, которые, как я вижу, позволяют это сделать. Кто-нибудь знает, как я могу открыть файл и найти в нем определенную строку (данный сервер разрешает только вход в систему Telnet - без ssh) ... Спасибо:

import sys
import telnetlib





HOST = "10.28.46.14"
user = raw_input("Enter your username: ")
password = ""

tn = telnetlib.Telnet(HOST)

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

if password == "":
    tn.read_until("Password: ")
    tn.write(password + "\n")
    #print "Login successful!"
else:
    print "Your password is incorrect."


tn.write("cd /var/opt/mylog/log\n")
tn.write("ls\n")
tn.read_until("\n")
#tn.write("exit\n")

my_ls = tn.read_until("my.log")


print my_ls

person suffa    schedule 30.07.2012    source источник


Ответы (1)


Вы связались с владельцем машины по поводу ssh и telnet? Уже не так много операционных систем поставляются с telnet «из коробки», потому что telnet подвержен повторным атакам.

Что, если вы скажете tn сделать grep? Вы можете добавить «echo $?» после grep, чтобы получить код выхода - 0 означает, что было одно или несколько совпадений, все остальное означает, что их не было.

person user1277476    schedule 30.07.2012
comment
Поскольку поиск файла на сервере не кажется практичным, может быть, есть способ получить / загрузить файл с сервера на мой компьютер с помощью telnet? Я думаю, что есть команда bash для передачи файлов, но я не помню ее сразу. - person suffa; 31.07.2012
comment
Я придумал решение, которое работает: я просто копирую файл журнала в командной строке, использую функцию tn.read_all для захвата экрана в файл журнала и выполняю поиск на стороне ПК. - person suffa; 02.08.2012