diff --git a/backup.py b/backup.py index 1312bd16..196a71f7 100644 --- a/backup.py +++ b/backup.py @@ -4,17 +4,18 @@ import logging from datetime import datetime from aiogram.types import BufferedInputFile from bot import bot -from config import ADMIN_ID, DB_USER, DB_NAME +from config import ADMIN_ID, DB_USER, DB_NAME, DB_PASSWORD async def backup_database(): - # Параметры бэкапа + USER = DB_USER HOST = "localhost" BACKUP_DIR = "/home/vlad" DATE = datetime.now().strftime("%Y-%m-%d-%H%M%S") BACKUP_FILE = f"{BACKUP_DIR}/{DB_NAME}-backup-{DATE}.sql" - # Команда для резервного копирования + os.environ['PGPASSWORD'] = DB_PASSWORD + try: subprocess.run( ['pg_dump', '-U', USER, '-h', HOST, '-F', 'c', '-f', BACKUP_FILE, DB_NAME], @@ -25,7 +26,6 @@ async def backup_database(): logging.error(f"Ошибка при создании бэкапа базы данных: {e}") return - # Отправка файла бэкапа в чат админа try: with open(BACKUP_FILE, 'rb') as backup_file: backup_input_file = BufferedInputFile(backup_file.read(), filename=os.path.basename(BACKUP_FILE)) @@ -34,7 +34,6 @@ async def backup_database(): except Exception as e: logging.error(f"Ошибка при отправке бэкапа в Telegram: {e}") - # Удаление старых копий (старше 7 дней) try: subprocess.run( ['find', BACKUP_DIR, '-type', 'f', '-name', '*.sql', '-mtime', '+7', '-exec', 'rm', '{}', ';'], @@ -43,3 +42,5 @@ async def backup_database(): logging.info("Старые бэкапы удалены.") except subprocess.CalledProcessError as e: logging.error(f"Ошибка при удалении старых бэкапов: {e}") + + del os.environ['PGPASSWORD']