You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于SSH的Python实现:提取远程监控文件指定传感器最新值

用Python实现带密码的SSH远程数据提取

我来帮你把那段bash脚本转换成Python版本,完美适配你的需求——不用完整下载大文件,直接在远程服务器上过滤出指定传感器的最新数值,再写入本地文件供后续使用。

首先,我们需要用到paramiko这个Python SSH库,它能帮我们轻松处理密码认证的SSH连接。先安装它:

pip install paramiko

接下来是完整的Python代码,我加了详细注释,方便你理解和修改:

import paramiko

# 配置参数,根据你的实际情况修改
SSH_HOST = "192.168.101.53"
SSH_USER = "keysight"  # 远程服务器的用户名
SSH_PASSWORD = "iHEM_MT17"  # SSH连接密码
SENSOR_PATTERN = "SP_t_5_roh"  # 要查找的传感器名称
LOCAL_OUTPUT_PATH = "/run/user/1000/temperaturtest.txt"

try:
    # 创建SSH客户端实例
    ssh_client = paramiko.SSHClient()
    # 自动添加远程主机的密钥(避免第一次连接时的手动确认)
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    # 建立SSH连接
    ssh_client.connect(SSH_HOST, username=SSH_USER, password=SSH_PASSWORD)
    
    # 执行远程命令,完全复刻原bash脚本的逻辑:
    # 先执行keysight命令输出监控数据,再过滤指定传感器行→提取第4个字段→取最后一行(最新数值)
    command = f'keysight | egrep "{SENSOR_PATTERN}" | cut -d" " -f4 | tail -n 1'
    stdin, stdout, stderr = ssh_client.exec_command(command)
    
    # 获取命令输出,去掉多余的换行符和空白字符
    latest_value = stdout.read().decode().strip()
    
    # 检查是否有错误输出
    error_msg = stderr.read().decode().strip()
    if error_msg:
        print(f"远程命令执行出错: {error_msg}")
    else:
        # 将结果写入本地文件
        with open(LOCAL_OUTPUT_PATH, "w") as f:
            f.write(latest_value)
        print(f"成功获取最新数值: {latest_value},已写入文件 {LOCAL_OUTPUT_PATH}")

finally:
    # 确保SSH连接关闭,避免资源泄漏
    if ssh_client.get_transport() is not None and ssh_client.get_transport().is_active():
        ssh_client.close()

关键说明:

  • 参数灵活修改:开头的几个变量你可以根据实际场景调整,比如更换传感器名称、本地输出路径,或者修改远程服务器的连接信息。
  • SSH连接安全:set_missing_host_key_policy是为了测试方便,如果你需要更严格的安全策略,可以提前把远程主机的密钥添加到本地known_hosts文件,然后移除这行代码。
  • 命令逻辑兼容:完全对齐原bash脚本的处理流程,确保结果和之前一致。如果你的监控数据是来自某个静态文件而非keysight命令,只需要把命令里的keysight换成cat /path/to/your/datafile即可。
  • 资源安全:用try-finally块保证无论连接成功与否,都会关闭SSH连接,避免长期占用资源。

内容的提问来源于stack exchange,提问作者Muthu Alagappan Narayanan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:45:47