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" <[email protected]> > 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 > [email protected] > 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 <[email protected]>
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
