автоввод паролей
This commit is contained in:
@@ -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']
|
||||
|
||||
Reference in New Issue
Block a user