我必须执行驻留在远程计算机中的python脚本,并且正在使用以下脚本:
from subprocess import call
ip = 1.1.1.1
call(["ssh", ip, "\"cd scripts; python -u get_details.py --web_server\""])
得到以下错误:
bash: cd scripts; python -u get_details.py --web_server: command not found
直接在bash命令行中运行:
ssh 1.1.1.1 "cd scripts; python -u get_details.py --web_server"
询问下面的输入并返回输出
1. USA
2. UK
Choose input: 1
www.cisco_us.com is up
请让我看看如何在python中实现此目的的修复或其他更好的方法
答案 0 :(得分:2)
您需要删除引号,因为外壳会将其删除。这个:
groupedData
等效于:
ssh 1.1.1.1 "cd scripts; python -u get_details.py --web_server"
如果您以这种方式使用call(["ssh", ip, "cd scripts; python -u get_details.py --web_server"])
,则客户端不涉及任何外壳程序(这是一件好事),而仅在服务器端。
答案 1 :(得分:0)