2011-09-16 152 views
-1

您好我想知道如何通过python或jython建立ssh连接并在另一台机器上远程运行脚本文件。我不确定要运行脚本的机器的平台?请提供一些示例代码。我不介意去寻找其他一些脚本语言。如何通过python或jython建立ssh连接并远程运行脚本?

+0

@chown我不知道phython我只知道我想要什么。我没有用我的回答说服我,所以我在这里问。请不要那么粗鲁。 – amod

+0

@downvoter ......它更好,如果你解释我为什么你低估了。 – amod

+0

@ chown http://stackoverflow.com/faq#etiquette – amod

回答

2

最简单/最快捷的方法是使用Python的使用os.system()调用系统的SSH命令: http://docs.python.org/library/os.html?highlight=system#os.system

例如这可以在Ubuntu上运行

import os 
os.system('/usr/bin/ssh localhost ls -la /') 

通过本地主机上的ssh运行'ls -la /'。

您需要为ssh提供正确的命令行选项,并且您可以设置ssh密钥以安全连接,但不需要密码即可执行命令: 请检查:http://www.g-loaded.eu/2005/11/10/ssh-with-keys/或谷歌更多关于SSH密钥的信息。

+2

是的它的工作原理 - 但它不是一个好的解决方案,首先,不要使用'os.system',看'subprocess'。更好的是,使用直接的库,比如paramirko。 – Anders

+0

取决于你需要什么。对于一个快速入侵这个作品。除非您直接使用openssh lib,否则使用系统的ssh比单独的库更安全_usually_。 – flouris

1

你可能想看看Fabric

面料是简化应用程序部署和系统管理任务的 使用SSH的Python库和命令行工具。

它提供操作的基本套件,用于执行本地或远程 外壳命令(通常或经由sudo)和上传/下载文件, 以及辅助功能,诸如提示运行的用户 用于输入,或中止执行。

1

您应该尝试execnet,它提供了API以在远程机器上执行任意Python代码。我在Linux机器上使用它,但它可以在Windows和Linux中使用。

相关问题