2016-06-17 4 views
0

Ich benutze Python 2.7 mit Bibliothek paramiko. Ich möchte die neueste geänderte Datei in der Remote-Maschine finden. Hier ist mein Code:Python ssh finde die neueste Datei

Zuerst importiere ich die erforderlichen Bibliotheken,

import paramiko 

Zweitens, ich den SSH-Client und SFTP einrichten,

s = paramiko.SSHClient() 
s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
s.connect("XXX.XXX.XXX.XX",22,username="NAME",password='PW',timeout=4) 

sftp = s.open_sftp() 

Danach habe ich keine Ahnung, wie ich kann das Verzeichnis /home/image/ durchqueren, um die zuletzt geänderte Datei auf dem Remotecomputer zu ermitteln.

Ich weiß nur, wie es in lokalen zu finden, wie zB:

file= max(glob.iglob(os.path.join('/home/image/','*.png')), key=os.path.getmtime).replace("//","/") 

ich um Hilfe bin zu fragen, wie kann ich die letzte geänderte Datei in dem Remote-Rechner herausfinden. Vielen Dank.

+0

'ls -1t | Kopf -1' –

+0

@BurhanKhalid Danke für Ihre Antwort. Es ist ein wirklich netter Befehl. Aber wie kann ich diesen Befehl in Python ausführen? – VICTOR

Antwort

0

Endlich habe ich die Lösung. Danke für die Hinweise von @Burhan Khalid.

s = paramiko.SSHClient() 
s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
s.connect("XXX.XXX.XX",22,username="NAME",password='PW',timeout=4) 
sftp = s.open_sftp() 

stdin, stdout, stderr = s.exec_command('cd /home/image; ls -1t | head -1') 
for line in stdout.read().splitlines(): 
    print line 
+2

Nun, das ist keine SFTP-Lösung. Sie verwenden Remote-Shell und verlassen sich auf ein bestimmtes Betriebssystem oder sogar Shell. Beachten Sie, dass Sie niemals die Variable 'sftp' verwenden. –