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

如何在Python脚本中替换Nessus命令的HOSTID为主机名?

解决Nessus代理链接命令的主机名替换问题

没问题,我来帮你把手动执行的Nessus代理链接命令转换成可移植的Python脚本,自动用主机名替换HOSTID。这里是完整的实现方案:

完整Python脚本

import platform
import subprocess

def link_nessus_agent():
    # 获取当前机器的主机名
    host_id = platform.node()
    
    # 构建Nessus代理链接命令,用主机名替换HOSTID
    nessus_command = [
        'sudo',
        '/library.nessusagent.run.sbin.nessuscli',
        'agent',
        'link',
        '--key=5e30508800865f87a8dbe8993fa75d21f9e2acc7db12165050cf48b5ccbafb84',
        f'--name={host_id}',
        '--groups=Mac_OS_Systems',
        '--Host=Cloud.tenable.com',
        '--port=443'
    ]
    
    try:
        # 执行命令并捕获输出
        result = subprocess.run(nessus_command, check=True, capture_output=True, text=True)
        print("Nessus代理链接成功!输出信息:")
        print(result.stdout)
    except subprocess.CalledProcessError as e:
        print("链接失败,错误信息:")
        print(e.stderr)

if __name__ == "__main__":
    link_nessus_agent()

关键步骤解释

  • 获取主机名:用你已经找到的platform.node()方法,它会返回当前机器的主机名,完美替代命令里的HOSTID。
  • 构建命令:我把命令拆成了列表形式(subprocess推荐的安全写法),用f-string把host_id插入到--name参数里,这样能避免字符串拼接的安全问题。
  • 执行命令:用subprocess.run()执行命令,check=True会在命令执行失败时抛出异常,capture_output=True可以捕获命令的输出和错误信息,方便调试。

注意事项

  • 运行这个脚本时必须用sudo权限,因为命令里包含sudo,否则会报错权限不足。
  • 如果你的NessusCLI路径实际是/Library/NessusAgent/run/sbin/nessuscli(看起来可能是输入时的标点错误),记得修改命令里的路径。

内容的提问来源于stack exchange,提问作者Alan Inman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:07:09