gpt4 book ai didi

python - 在 windows 中使用 python 在 linux 上运行远程 perl 脚本

转载 作者:可可西里 更新时间:2023-11-01 11:56:10 25 4
gpt4 key购买 nike

我需要从 Windows 机器连接到远程 Linux 服务器并执行 Perl 脚本。我试过使用

command = "perl /usr/local/xfer/file.pl -ssh root@"+hostname+" -pw password -batch"
pid = subprocess.Popen(command, shell=True)

但它告诉我无法打开 perl 脚本 "usr/local/xfer/file.pl'": No such file or directory.

我在这里做错了什么,我怎样才能让它发挥作用?

最佳答案

上面的命令在 Windows 上使用 Perl 安装,但您说脚本位于 Linux 服务器上。

因此您需要将调用包装在对 ssh 的调用中:

child = subprocess.Popen(['plink', '-ssh', 'user@server', 'perl', '/usr/local/xfer/file.pl', 
'-ssh', 'root@'+hostname, '-pw', 'password', '-batch'], shell=True)

注意:永远不要使用subprocess.Popen()的“字符串命令”版本,始终将命令和参数作为列表传递.

回到您的问题:这将启动 plink(Putty 的命令行版本,因为 Windows 没有 ssh(1)),所有其他列表元素如下参数。

请注意,Putty Agent 必须运行才能运行,否则 plink 将要求输入密码。详情请参阅手册。

关于python - 在 windows 中使用 python 在 linux 上运行远程 perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16086032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com