2016-06-17 4 views
0

Я использую Python 2.7 с библиотекой paramiko. Я хочу найти последний измененный файл на удаленной машине. Вот мой код:Python ssh найти последний файл

Во-первых, я импортировать необходимые библиотеки,

import paramiko 

Во-вторых, я создал клиент SSH и SFTP,

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() 

После этого, я понятия не имею, как я может пройти по каталогу /home/image/, чтобы узнать последний измененный файл на удаленном компьютере.

Я только знаю, как найти его в местном, как:

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

Я прошу о помощи, как я могу узнать последние измененный файл в удаленной машине. Спасибо.

+0

'ls -1t | head -1' –

+0

@BurhanKhalid Спасибо вам за ответ. Это действительно хорошая команда. Но как я могу запустить эту команду в Python? – VICTOR

ответ

0

Наконец-то я получил решение. Спасибо за подсказки от @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

Ну, это не решение SFTP. Вы используете удаленную оболочку и полагаетесь на определенную операционную систему или даже на оболочку. Обратите внимание, что вы никогда не используете переменную 'sftp'. –