网络Python案例:IPv6日志保存(华为)

网络Python案例:IPv6日志保存(华为)

测试的Python版本:

image.png

程序特点:

1、无限循环,直到被手动关闭。

2、获取当前时间戳,精确到秒,并构造输出文件夹名

3、输出结果禁用分布

4、多个命令执行后的结果保存到同一个txt中


代码开始,如下:

import paramiko
import time
import os
from datetime import datetime

# SSH连接信息
switch_ip = '管理ip地址'
username = 'ssh远程用户名'
password = 'ssh远程密码'
port = 22

# 定义要执行的命令列表
commands = [
    "display clock",
    "display access-user brief",  # 示例命令,请替换为您需要的命令
    # 添加更多命令...
]

# 无限循环,直到程序被外部中断
while True:
    try:
        # 获取当前时间戳,精确到秒,并构造输出文件夹名
        timestamp = datetime.now().strftime('%Y年%m月份/%Y年%m月%d日')
        folder_name = f"{timestamp}"
        output_folder = f"./Backup/{folder_name}"

        # 检查文件夹是否存在,如果不存在则创建它
        if not os.path.exists(output_folder):
            os.makedirs(output_folder)
            print(f"Created folder: {output_folder}")

            # 获取当前时间戳,精确到秒,并构造输出文件名
        timestamp = datetime.now().strftime('主机10.10.255.42_%Y年%m月%d日%H时%M分%S秒')
        output_file = f"{output_folder}/BNUZ-UserInfo_{timestamp}.txt"

        # 创建SSH客户端
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

        # 连接到交换机
        ssh_client.connect(switch_ip, port, username, password)
        # 创建一个新的SSH会话
        channel = ssh_client.invoke_shell()

        # 禁用分页(请根据您的设备调整此命令)
        channel.send("screen-length 0 temporary\n")
        time.sleep(1)

        # 发送命令并保存所有输出到一个文件
        with open(output_file, 'w') as f:
            for cmd in commands:
                # 发送命令并获取输出
                channel.send(f"{cmd}\n")
                time.sleep(2)

                output = ''
                while channel.recv_ready():
                    data = channel.recv(65535).decode()
                    if not data:
                        break
                    output += data

                    # 在输出中添加一个分隔符以便区分不同的命令输出
                f.write(f"==== Output for '{cmd}' ====\n")
                f.write(output)
                f.write("\n\n")

                print(f"Output for '{cmd}' appended to {output_file}")

                # 如果命令之间有依赖关系或需要等待,可以在这里添加适当的延时

        # 关闭SSH连接
        ssh_client.close()

        # 程序执行完毕,等待10秒后再次执行
        time.sleep(600)

    except Exception as e:
        print(f"An error occurred: {e}")
        # 如果发生错误,也可以选择在此处退出循环,或进行其他错误处理
        # break  # 取消注释此行以在发生错误时退出循环

代码结束,如上。


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » 网络Python案例:IPv6日志保存(华为)

作者: 小编


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!