Qualcuno sa come registrare le variabili di ambiente per le chiamate exec_command quando si utilizza SSHClient?impostazione della variabile di sessione per la sessione paramiko
Sto utilizzando uno script di base che crea un'istanza della classe SSHClient, si connette a un altro computer tramite il metodo connect, quindi invia comandi utilizzando il metodo exec_command. Tuttavia, nessuna delle variabili di ambiente sembra essere registrata quando tento di emettere comandi. Posso fare cose basilari come 'ls' e vedere lo stdout, ma quando provo ad eseguire programmi installati, il fatto che manchino le variabili d'ambiente rende impossibile eseguirli. Usare ssh nella riga di comando per fare la stessa cosa funziona, come sono impostate le variabili di ambiente per l'utente.
#!/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()
Nota: non riesco a modificare la directory in paramiko. Ho aggiunto il comando cd
nel comando followup in un singolo ssh.exec_command('cd /dddd/ddd;ls')
. Ho dato come esempio ls
ma il mio comando followup è diverso.
Avete provato ad aggiungerli tramite ['os.environ'] (http://docs.python.org/2/library/os.html#os.environ)? – mgilson
Sto cercando di impostare anche la variabile env 'TZ': | Come possiamo impostare la variabile env 'TZ' usando 'os.environ', se non è supportato in' paramiko' ?? Grazie. –