[python] ssh klient pro python

Visgean Skeloru visgean na gmail.com
Neděle Srpen 12 14:21:35 CEST 2012


Ahoj, vím že na SSH - hlavně na správu serverů se hodně používá
http://fabfile.org/ , možná bvy to fungovalo lépe

2012/8/12 "Ing. Vladislav Ludík" <vlada na ludik.cz>

> Zdravím všechny,
>
> narazil jsem na problém, který se týká nespolehlivého ssh klienta z modulu
> paramiko.
>
> Když pomocí něj čtu data například z některých verzí Mikrotiku,
> například MikroTik RouterOS 5.17, stane se občas, že nedostanu kompletní
> data.
> Někdy načte vše, někdy jen něco. Jak kdy.
> Pokud se připojím přes PuTTy, je přenos vždy spolehlivý.
> Můj modul, který pak používám v mých programech je v příloze.
> Neví někdo kde bych měl hledat problém, popřípadě o spolehlivějším
> klientovi ?
>
> Děkuji V.L.
>
> """Modul pro zadavani prikazu pres ssh"""
>
> import paramiko
> import cmd
> import string
>
> class RunCommand(cmd.Cmd):
>         """ Jednoduchy shell pro zadavani prikazu na adresu host """
>
>         prompt = 'ssh > '
>
>         def __init__(self):
>                 cmd.Cmd.__init__(self)
>                 self.hosts = []
>                 self.connections = []
>
>         def do_add_host(self, args):
>                 """add_host <host,user,password,port>
>                 Prida adresu host do seznamu """
>                 if args:
>                         self.hosts.append(args.split(','))
>                 else:
>                         print "pouziti: host <hostip,user,password,port>"
>
>         def do_connect(self, args):
>                 """ Pripoji se ke vsem adresam host ze seznamu """
>                 for host in self.hosts:
>                         ipcko, user, pswd, port = host
>                         user = string.strip(user)
>                         pswd = string.strip(pswd)
>                         port = int(string.strip(port))
>
>                         client = paramiko.SSHClient()
>                         client.set_missing_host_key_policy(
>                                 paramiko.AutoAddPolicy())
>                         client.connect(ipcko,
>                                 username=user,
>                                 password=pswd,
>                                 port=port)
>                         self.connections.append(client)
>
>         def do_run(self, command):
>                 """run <command>
>                 Provede tento prikaz pro vsechny pripojene adresy ze
> seznamu """
>                 if command:
>                         for host, conn in zip(self.hosts,
> self.connections):
>                                 stdin, stdout, stderr =
> conn.exec_command(command)
>                                 out = stdout.read()
>                                 err = stderr.read()
>                                 stdout.close()
>                                 stderr.close()
>                                 return out, err
>                 else:
>                         print "pouziti: run <command>"
>
>         def do_close(self, args):
>                 for conn in self.connections:
>                         conn.close()
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> from ssh import *
>
> def doSSH(host, cmd, user=_user, pswd=_pswd, port=_port):
>     'Provedeni prikazu SSH'
>
>     con = ['%s,%s,%s,%s' % (host, user, pswd, port)]
>     ssh = RunCommand()
>     ssh.do_add_host(con[0])
>     ssh.do_connect(con)
>     stdout, stderr = ssh.do_run(cmd)
>     ssh.do_close(con)
>
>     return stdout, stderr
>
> # atd.....
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>



-- 
GPG pub key<http://keyserver.pgp.com/vkd/SubmitSearch.event?SearchCriteria=visgean%40gmail.com>
 | github/visgean <http://github.com/Visgean> | jabber <visgean na jabber.cz>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20120812/d8b95597/attachment.html>


Další informace o konferenci Python