Мой сервер генерирует каждую минуту ~ 30 XML-файлов, и я хотел бы сделать sftp для передачи файлов с сервера на мой компьютер.Я хотел бы использовать Paramiko для выполнения sftp, я получаю то, что хочу, с помощью приведенного ниже скрипта:
import paramiko
import os
import time
filename = "addresses.text"
localpath= "******"
serverpath= "*******"
while True:
try:
current_time = time.time()
with open(filename) as f:
data = f.readlines()
for ipAddr in data:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ipAddr,username="root",password="root")
sftp = ssh.open_sftp()
for element in sftp.listdir(serverpath):
if element.endswith(".xml"):
try:
print(os.stat(localpath+f))
except:
try:
creation_time = sftp.stat(serverpath+element).st_mtime
if (current_time+3400 - creation_time) / (3600) <= 1:
sftp.get(serverpath+element,localpath+element)
except:
print(Exception)
sftp.close()
ssh.close()
for f in os.listdir(localpath):
creation_time = os.path.getctime(localpath+f)
print((3600+current_time - creation_time) / (3600))
if (3600+current_time - creation_time) / (3600) >= 1.8:
os.unlink(localpath+f)
except OSError as e:
print(OSError)
Я хотел бы сделать что-то вроде start sftp.py
, а затем запустить свой скрипт в фоновом режиме.И когда я хочу остановить соединение, просто запустите stop sftp.py