我要去写首先代码,用于处理ssh命令蟒蛇在我没有搜索的计算器和可以看到,有几个python库,可用于处理命令通过ssh样 paramiko, pexpect 也许其他一些人。

尤其是,我将需要阅读内容的文件,从远程服务器复制文件通过ssh/scp,得到输出从远程服务器之后开始脚本上远程服务器。

也许有些专家建议,库什么是更好的和指定的优点或缺点?

有帮助吗?

解决方案

库、包装:

  1. http://www.lag.net/paramiko/

    #!/usr/bin/env python
    import paramiko
    from contextlib import contextmanager
    host = '192.168.10.142'
    username = 'slacker'
    password = 'password'
    def create_ssh(host=host, username=username, password=password):
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        try:
           print "creating connection"
           ssh.connect(host, username=username, password=password)
           print "connected"
           yield ssh
        finally:
           print "closing connection"
           ssh.close()
           print "closed"
    

1)利用2),并提供了一些高级功能。如果是后者适合你的要求,我建议试图1)


更新:1)已经结束了(2017-09-12)

  1. http://media.commandline.org.uk/code/ssh.txt (例如使用情况: https://zeth.net/archive/2008/05/29/sftp-python-really-simple-ssh/)

    s = ssh.Connection('example.com', 'warrior', password = 'lennalenna')
    s.put('/home/warrior/hello.txt', '/home/zombie/textfiles/report.txt')
    s.get('/var/log/strange.log', '/home/warrior/serverlog.txt')
    s.execute('ls -l')
    s.close()
    

注意到:代码的例子上提供的只是为了得到一种印象;代码是没有进行测试。

其他提示

由于你没有在协议层面做什么特别的东西,你可能并不需要的协议,在Python中完全实现,你可以简单地使用subprocess模块运行ssh / scp的命令。

import subprocess
subprocess.check_call(['ssh', 'server', 'command'])
subprocess.check_call(['scp', 'server:file', 'file'])

试着看看 扭曲的海螺.它处理你想要的一切。如果你们只是寻找SCP式文件传输,你总是可以使用的模块蟒蛇 secsh-filexfer.

的一个特点,那就没有上述讨论的图书馆提供一个连接并发给多个服务器。在当今时代里,系统管理员需要上运行的命令数百台服务器、图书馆,它可以处理并行命令的执行是非常重要的。这两个图书馆,我知道的是:

  1. 触发器

  2. 并SSH

触发更不是一种SSH的包装和更多的联网图书馆,它利用了扭转核心API启用并发I/O操作。

并SSH是一个图书馆,这是细包装在Paramiko但使用Gevent引擎盖下的启用并发I/O操作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top