Получить последний каталог - PullRequest
0 голосов
/ 27 июня 2018
import paramiko
ssh =paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='test.com',username='test',password='test123')
srcpath = ('/tmp/test/')
destpath = ('/tmp/file/')
transfer=ssh.open_sftp()
stdin, stdout, stderr = ssh.exec_command('cd /tmp/test/; ls -1t *txt* | head -1') 
out = stdout.read().splitlines()
print out
error = stderr.read().splitlines()
print error
transfer.close()
ssh.close()

Выше мой код, я пытался получить последнюю папку на удаленном сервере. Я сталкиваюсь с ошибкой ниже.

Ошибка:

['bash: head: команда не найдена']

Есть ли другой способ получить последний каталог?

1 Ответ

0 голосов
/ 27 июня 2018

На самом деле вам не нужны ни "голова", ни "хвост", просто получите доступ к последней строке из python следующим образом. Это ваш код, немного отредактированный, чтобы поймать последнюю строку как last_line:

import paramiko
ssh =paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='test.com',username='test',password='test123')
srcpath = ('/tmp/test/')
destpath = ('/tmp/file/')
transfer=ssh.open_sftp()
stdin, stdout, stderr = ssh.exec_command('cd /tmp/test/; ls -1t *txt*') 
out = stdout.read().splitlines()
last_line = out[-1] ## takes out the last line without need for tail command
print out
print last_line
error = stderr.read().splitlines()
print error
transfer.close()
ssh.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...