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

问题描述:

我需要从Windows机器连接到远程Linux服务器并执行Perl脚本。 我使用在windows中使用python在Linux上运行远程perl脚本

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

尝试,但它告诉我Can't open perl script "usr/local/xfer/file.pl'": No such file or directory.

我在做什么错在这里,我怎么能得到它的工作?

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

所以你需要用调用中调用SSH:

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

注:决不用不完的subprocess.Popen()的“字符串命令”的版本,总是传递命令和参数作为列表

回到您的问题:这将开始plink(命令行版本的腻子,因为Windows没有ssh(1))与所有其他列表元素作为参数。

请注意,腻子代理必须运行此工作,否则plink将要求输入密码。详情请参阅手册。

+1

这帮了很大忙。在将plink.exe放入我的python路径之后,我真正需要的是'subprocess.call'(['plink','-ssh','%s @%s'%(USER,HOST),' -pw',PASSWORD,'perl','//usr/local/xfer/file.pl'],shell = True)'' – CCKx