From 5c080188d01a3fdb9fef209cfbb27f989123da64 Mon Sep 17 00:00:00 2001 From: Sergej Bestuzhev Date: Thu, 7 Aug 2025 22:08:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D1=8B=D1=85=20=D0=BA=D0=BE=D0=BF=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py_scripts_part/backup.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/py_scripts_part/backup.py b/py_scripts_part/backup.py index c6efebf..6b19c1b 100644 --- a/py_scripts_part/backup.py +++ b/py_scripts_part/backup.py @@ -6,7 +6,7 @@ import logging from datetime import datetime, timedelta # Константы -DAYS_TO_KEEP = 30 # Хранить резервные копии 30 дней +DAYS_TO_KEEP = 20 # Хранить резервные копии 30 дней CONFIG_FILE = "backup_config.json" # Путь к файлу конфигурации LOG_FILE = "backup_log.log" # Файл для логов @@ -48,13 +48,25 @@ def cleanup_old_backups(backup_dirs): continue try: - file_date_str = filename.split('_')[-1].replace('.zip', '') - file_date = datetime.strptime(file_date_str, "%Y-%m-%d_%H-%M-%S") + # Разбираем имя файла на части + parts = filename.split('_') + if len(parts) < 3: + raise ValueError("Недостаточно частей в имени файла") + + # Собираем строку с датой (последние 2 части перед .zip) + date_str = '_'.join(parts[-2:]).replace('.zip', '') + + # Пробуем разные форматы даты + try: + file_date = datetime.strptime(date_str, "%Y-%m-%d_%H-%M-%S") + except ValueError: + file_date = datetime.strptime(date_str, "%d-%m-%Y_%H-%M-%S") if file_date < cutoff_date: os.remove(file_path) logging.info(f"Удален устаревший файл: {file_path}") - except (ValueError, IndexError) as e: + + except Exception as e: logging.warning(f"Некорректное имя файла {filename}: {str(e)}") continue