Tôi muốn chạy lệnh tail -f logfile
trên máy từ xa bằng mô-đun paramiko của python. Tôi đã cố gắng nó cho đến nay trong thời trang sau:Lệnh ssh chạy dài trong mô-đun paramiko python (và cách kết thúc chúng)
interface = paramiko.SSHClient()
#snip the connection setup portion
stdin, stdout, stderr = interface.exec_command("tail -f logfile")
#snip into threaded loop
print stdout.readline()
Tôi muốn các lệnh để chạy miễn là cần thiết, nhưng tôi có 2 vấn đề:
- Làm thế nào để ngăn chặn điều này sạch? Tôi đã nghĩ đến việc tạo một Kênh và sau đó sử dụng lệnh
shutdown()
trên kênh khi tôi kết nối với nó - nhưng điều đó có vẻ lộn xộn. Có thể thực hiện điều gì đó như đã gửiCtrl-C
tới kênh chuẩn của kênh không? readline()
khối và tôi có thể tránh các chuỗi nếu tôi có phương pháp không chặn đầu ra - bất kỳ suy nghĩ nào?
Ghét để phá vỡ tin xấu, nhưng SSHClient() đã sử dụng chủ đề nội bộ. – joeforker