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

本地VSCode运行Proxmox操作Python脚本报错,服务器端运行正常

问题分析与解决

错误原因

  • 脚本中subprocess.getstatusoutput('sudo pct status ' + container)这行代码是在本地PC执行命令,但本地Windows系统没有Proxmox专属的pct命令,因此出现“命令不被识别”的报错。
  • 在Proxmox服务器的VSCode Server运行时,subprocess是在服务器本地执行,服务器本身自带pct命令,所以运行正常。

修复后的代码

把执行pct status的逻辑也通过netmiko发送到Proxmox服务器远程执行,而非在本地调用subprocess。修改后的代码如下:

from netmiko import ConnectHandler
import re

linux = {
    'device_type': 'linux',
    'ip': '1.1.1.1',
    'username': 'my_username',
    'password': 'my_pass',
    'port': 1111,
    'verbose': True
}
connection = ConnectHandler(**linux)
output = connection.send_command('sudo pct list | tail -n +2')
pattern = "\d{3}"
getConID = re.findall(pattern, output)
print(getConID)

# 通过netmiko远程执行pct status命令
for container in getConID:
    exec_output = connection.send_command(f'sudo pct status {container}')
    print(exec_output)

connection.disconnect()

额外注意事项

  • 确保Proxmox服务器上的用户拥有无需输入密码即可执行sudo pct的权限(可修改/etc/sudoers配置,添加your_username ALL=(ALL) NOPASSWD: /usr/sbin/pct),避免脚本执行时卡在密码输入环节。
  • 本地Windows系统不支持Linux的sudo、pct等命令,所有针对Proxmox的操作命令都必须通过netmiko远程执行。

内容的提问来源于stack exchange,提问作者Dvir Horev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:25:25