Add Files
Create Backup
This commit is contained in:
41
core/scripts/telegrambot/utils/backup.py
Normal file
41
core/scripts/telegrambot/utils/backup.py
Normal file
@ -0,0 +1,41 @@
|
||||
import telebot
|
||||
import subprocess
|
||||
import qrcode
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import shlex
|
||||
import re
|
||||
from dotenv import load_dotenv
|
||||
from telebot import types
|
||||
from utils.command import *
|
||||
|
||||
|
||||
@bot.message_handler(func=lambda message: is_admin(message.from_user.id) and message.text == 'Backup Server')
|
||||
def backup_server(message):
|
||||
bot.reply_to(message, "Starting backup. This may take a few moments...")
|
||||
bot.send_chat_action(message.chat.id, 'typing')
|
||||
|
||||
backup_command = f"python3 {CLI_PATH} backup-hysteria"
|
||||
result = run_cli_command(backup_command)
|
||||
|
||||
if "Error" in result:
|
||||
bot.reply_to(message, f"Backup failed: {result}")
|
||||
else:
|
||||
bot.reply_to(message, "Backup completed successfully!")
|
||||
|
||||
|
||||
try:
|
||||
files = [f for f in os.listdir(BACKUP_DIRECTORY) if f.endswith('.zip')]
|
||||
files.sort(key=lambda x: os.path.getctime(os.path.join(BACKUP_DIRECTORY, x)), reverse=True)
|
||||
latest_backup_file = files[0] if files else None
|
||||
except Exception as e:
|
||||
bot.reply_to(message, f"Failed to locate the backup file: {str(e)}")
|
||||
return
|
||||
|
||||
if latest_backup_file:
|
||||
backup_file_path = os.path.join(BACKUP_DIRECTORY, latest_backup_file)
|
||||
with open(backup_file_path, 'rb') as f:
|
||||
bot.send_document(message.chat.id, f, caption=f"Backup completed: {latest_backup_file}")
|
||||
else:
|
||||
bot.reply_to(message, "No backup file found after the backup process.")
|
||||
Reference in New Issue
Block a user