\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
| Path : /var/www/html/yedekledb24/DatabaseBackupMasterv3/ |
|
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
| Current File : /var/www/html/yedekledb24/DatabaseBackupMasterv3/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()