如何将 telnet 输出日志保存到文本文件

Posted

技术标签:

【中文标题】如何将 telnet 输出日志保存到文本文件【英文标题】:How to save telnet output logs to a text file 【发布时间】:2021-07-13 05:58:58 【问题描述】:

大家好,请问如何将输出日志保存到此脚本的文本文件以解决此问题

    import sys
    import telnetlib
    import getpass
    #####################
    ###### Define Host
    host=["192.168.1.164","192.168.1.169"]
    devno=len(host)
    user='ali'
    Password='cisco'

    for i in range(devno):
        print('*'*50 + ' Connected to device : '+str(host[i]) +'*'*50)
        tn=telnetlib.Telnet(host[i])
        tn.read_until(b'Username: ')
        tn.write(user.encode('ascii')+ b'\n')
        tn.read_until(b'Password')
        tn.write(Password.encode('ascii')+b'\n')
        #tn.write(b'enable' + b'\n')
        #tn.write(b"\n")
        #tn.write(b"terminal length 0\n")
        #tn.write(b"show run\n")
        #tn.write(b' show ip route\n')
        tn.write(b'  exit\n')
        print(tn.read_all().decode('ascii'))

【问题讨论】:

非常感谢侯赛因先生 我的意思是我想保存文件的输出你的代码打开文件而不保存任何输出 【参考方案1】:

您可以在 for 循环的末尾添加它

    with open("text1.txt", "w") as f:
            f.write(str(tn.read_all().decode("ascii")))

上面应该将你的命令的输出保存到文件中

如果您还想获取日志,则需要在退出前添加以下内容

    tn.write(b' show log\n')

【讨论】:

非常感谢侯赛因先生,它打开了同一目录中的文件,但没有将日志保存到文件中,只是空文件。 我现在试试你的命令它可以打开文件但日志没有保存到文件中 @aliabd 请检查我的答案,我已更新...这完全取决于您使用的命令 我检查并尝试它正在创建文件但没有将输出保存到文件中

以上是关于如何将 telnet 输出日志保存到文本文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将dos命令的到的东西输出到文本文件中

我telnet远程交换机上dis int b查看端口流量,想把cmd窗口中输出的内容保存到一个文本中,怎么弄啊

关于PHP文件操作: php保存数据到文本文件,怎么弄?

求Python程序,将固定文本文件中的文本按某字符串分开,输出几个新的文本文件

如何将excel的数据输出到文本文件中并设定长

Eclipse MyEclipse Scala IDEA for Eclipse里如何将控制台console输出的过程记录全程保存到指定的文本文件(图文详解)