Có ai biết cách tạo biến môi trường đã đăng ký cho exec_command cuộc gọi khi sử dụng SSHClient không?đặt biến phiên cho phiên paramiko
Tôi đang sử dụng tập lệnh cơ bản để khởi tạo lớp SSHClient, kết nối với máy tính khác bằng phương thức kết nối, sau đó gửi lệnh bằng phương thức exec_command. Tuy nhiên, không có biến môi trường nào dường như được đăng ký khi tôi cố gắng ra lệnh. Tôi có thể làm những việc cơ bản như 'ls' và xem stdout, nhưng khi cố gắng chạy các chương trình đã cài đặt, thực tế là các biến môi trường bị thiếu làm cho nó không thể chạy chúng. Sử dụng ssh trong dòng lệnh để thực hiện điều tương tự, vì các biến môi trường cho người dùng được thiết lập.
#!/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()
Lưu ý: Tôi không thể thay đổi thư mục của mình bằng paramiko. Tôi đã thêm lệnh cd
vào lệnh theo dõi trong một đơn ssh.exec_command('cd /dddd/ddd;ls')
. Tôi đã đưa ra ls
làm ví dụ nhưng lệnh theo dõi thực sự của tôi là khác nhau.
Bạn đã thử thêm chúng qua ['os.environ'] (http://docs.python.org/2/library/os.html#os.environ) chưa? – mgilson
Tôi đang tìm cách đặt biến 'enz' env: | Làm thế nào để chúng tôi đi về thiết lập biến 'enz' env bằng cách sử dụng 'os.environ', nếu nó không được hỗ trợ trong' paramiko' ?? Cảm ơn. –