Drush commands not executing using ParamikoLàm cách nào để thay đổi thư mục bằng cách sử dụng Paramiko?
Tôi đã đăng câu hỏi trên liên quan đến thông báo lỗi liên tục mà tôi nhận được bằng cách sử dụng Paramiko. Tôi không nghĩ rằng nó có liên quan đến câu hỏi tiếp theo của tôi, nhưng nó có thể là.
Tôi có thể kết nối thành công với máy chủ của mình qua SSH bằng cách sử dụng Paramiko. Tôi có thể thực hiện các lệnh như ls hoặc pwd. Những gì tôi không thể làm là thay đổi thư mục. Tôi có thể gửi lệnh "cd .." ví dụ, nhưng khi tôi theo dõi với "pwd" nó cho thấy rằng tôi đã không thay đổi thư mục. Nó chỉ liệt kê thư mục ban đầu mà tôi đang sử dụng khi tôi đăng nhập.
>>> stdin, stdout, stderr = myssh.exec_command("pwd")
>>> stdout.readlines()
['/big/dom/home/myid\n']
>>> stdin, stdout, stderr = myssh.exec_command("cd ../")
>>> stdout.readlines()
[]
>>> stdin, stdout, stderr = myssh.exec_command("pwd")
>>> stdout.readlines()
['/big/dom/home/myid\n']
>>>
Tôi có hiểu lầm những gì đang xảy ra ở đây không? Tôi có nên không thể thay đổi thư mục không? Hoặc nếu tôi có thể, tôi có nên làm nó theo cách khác hơn là sử dụng exec_command không?
-
tôi không thể trả lời câu hỏi của riêng tôi cho người khác 7 giờ, vì vậy đây là câu trả lời:
anh chàng này đã có nó đã tìm ra: http://www.vertigrated.com/blog/2010/02/python-remote-ssh-with-paramiko/
Bạn chỉ cần gửi nhiều lệnh với một exec_command, chẳng hạn như:
myssh.exec_command ('cd ..; pwd')
Sau đó stdout.readlines() sẽ trả về thư mục mà bạn đã thay đổi thành.
Bản sao có thể có của [Làm thế nào để bạn thực thi nhiều lệnh trong một phiên duy nhất trong Paramiko? (Python)] (https://stackoverflow.com/questions/6203653/how-do-you-execute-multiple-commands-in-a-single-session-in-paramiko-python) – tripleee