Kann jemand Umgebungsvariablen für exec_command Aufrufe registriert, wenn SSHClient verwenden?Einstellung Sitzungsvariable für paramiko Sitzung
Ich verwende ein Basisskript, das die SSHClient-Klasse instanziiert, eine Verbindung mit einem anderen Computer herstellt, die connect-Methode verwendet, und Befehle mit der exec_command-Methode sendet. Jedoch scheint keine der Umgebungsvariablen registriert zu sein, wenn ich versuche, Befehle auszugeben. Ich kann grundlegende Dinge wie 'ls' tun und sehe das stdout, aber wenn man versucht, installierte Programme auszuführen, macht es die Tatsache, dass die Umgebungsvariablen fehlen, unmöglich, sie auszuführen. Die Verwendung von ssh in der Befehlszeile, um das gleiche zu tun, funktioniert, da die Umgebungsvariablen für den Benutzer gesetzt sind.
#!/usr/bin/python
import paramiko
ssh.connect('mymachine',username='myname',password='pass')
stdin,stdout,stderr=ssh.exec_command('cd /myfolder/path')
stdin,stdout,stderr=ssh.exec_command('ls')
....
....
ssh.close()
Hinweis: Ich kann mein Verzeichnis in Paramiko nicht ändern. Ich habe den Befehl cd
im Folgebefehl in einem einzigen ssh.exec_command('cd /dddd/ddd;ls')
angefügt. Ich habe ls
als ein Beispiel gegeben, aber mein tatsächlicher Folgebefehl ist anders.
Haben Sie versucht, sie über ['os.environ'] (http://docs.python.org/2/library/os.html#os.environ) hinzuzufügen? – mgilson
Ich möchte auch die 'TZ' env Variable setzen: | Wie können wir die 'TZ' env-Variable mit 'os.environ' einstellen, wenn sie nicht in' paramiko' unterstützt wird? Vielen Dank. –