Каталог, содержащий набор файлов, подкаталог и подкаталог, содержащий файлы, мне нужно проверить, действительно ли эти файлы генерируются в удаленном месте.
скажем, [a.log,b.log,c.log,tmp_folder]
и tmp_folder
содержат d.log,e.log
файлов
В настоящее время я вхожу в удаленную машину и получаю список файлов, но я не могу сопоставить их, а также не могу передать весь этот каталог по sftp на локальную машину.
remote_dir = "some/location/path/time_stamp_10101010"
local_dir = "location/on/local/path"
Нужно скопировать весь этот каталог time_stamp_10101010
в local_path
.
import re,os,sys
import paramiko
remote_dir = "some/location/path/time_stamp_10101010"
local_dir = "location/on/local/path"
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host_ip, username=username,key_filename=key_filename,port=22)
stdin, stdout, stderr = ssh.exec_command("ls")
sftp_client = ssh.open_sftp()
dir_items = sftp_client.listdir_attr(remote_dir)
for item in dir_items:
print item
if os.path.isfile(os.path.join(remote_dir, item)):
remote_path = remote_dir + '/' + item.filename
local_path = os.path.join(local_dir, item.filename)
sftp_client.put_dir(remote_path, local_path)
# If item is a directory here and if it contains sub-directory and files
# How can I implement to copy recursively till all sub-directories and files are included.
Правильно ли я делаю? или есть ли лучший подход? Как проверить файлы, подкаталоги, сгенерированные в каталоге, соответствуют стандартному набору (как указано выше)? reg-ex было бы лучше, я чувствую.