Ich benutze Paramiko (paramiko-expect) Tail-Funktionalität, um eine Remote-Log-Datei über ssh in Python2.7 zu beenden. Aber ich möchte, dass es nach einer bestimmten Zeit (etwa 12 Stunden oder so) aufhört. Ich möchte nicht Strg + C verwenden. Gibt es eine Möglichkeit, ein Timeout hinzuzufügen?Wie Timeout die Schwanzfunktion in Paramiko-erwarten?
Der Zweck besteht darin, eine Protokolldatei zu überwachen, die die Fehler enthält, die im Remote-System auftreten. Es wird eine E-Mail mit der Fehlerzeile aus der Protokolldatei gesendet. Es sollte nur für die spezifizierte gegebene Zeit überwachen.
Jede andere alternative Methode ist sehr willkommen!
Vielen Dank im Voraus!
Hier ist der Code für sie:
import paramiko
from paramikoe import SSHClientInteraction
def print_me(line_prefix, current_line):
if not current_line == '':
a = current_line
print a
#SEND MAIL CODE HERE
return current_line
hostname = '1.1.1.1'
username = 'root'
password = 'abcd'
prompt = '.*=# '
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=hostname, username=username, password=password)
interact = SSHClientInteraction(client,timeout=10,display=False)
interact.send('tail -f /usr/elog/elog | grep -i --line-buffered severity')
interact.tail(line_prefix = hostname+': ' , callback = print_me)