Programy jak w wersji bezpłatnej jak SQL BackupAndFTP (dla baz z silnikiem MSSQL) posiadają ograniczoną funckcjonalność : wykonuję program max dwie kopie bazy, składowanie do chmury,brak szyfrowania...Przychodzi z pomocą agent AI aby zbudować bezpłatne narzędzie dla administratora systemów. Program zbudowany z użyciem języka Python.
Wymagania wstępne:
- Python 3.11+
- ODBC Driver 17 for SQL Server (wymagany przez
pyodbc) - Jeśli nie ma pyodbc – aplikacja automatycznie używa
sqlcmdjako fallback
Podstawowe funkcje aplikacji:
- Zakładki: SQL Server, FTP, Harmonogram, Dziennik zdarzeń, SMB, chmura...
- Autoryzacja Windows Auth lub SQL Auth
- Odświeżanie listy baz z datą ostatniego backupu
- Backup z kompresją T-SQL (
BACKUP DATABASE ... WITH COMPRESSION) - Upload FTP / FTPS (TLS), tryb aktywny/pasywny
- Automatyczny harmonogram: co godzinę / codziennie / co tydzień
- Hasła NIE są zapisywane w pliku konfiguracyjnym
Opis szczegółowy podstawowych zakładek:
Backup:
- wybór folderu docelowego
- opcja archiwum ZIP lub 7z (z hasłem)
- checkbox weryfikacji automatycznej po backupie
- widocznym potokiem operacji: Backup → Verify → ZIP/7z → AES → FTP → SMB → Email
Weryfikacja – zakładka do ręcznego sprawdzania plików:
RESTORE VERIFYONLY– sprawdza integralność bez przywracania- "Pobierz info o backupie" – pokazuje nazwę bazy, typ, datę, listę plików MDF/LDF
- weryfikacja całego folderu z plikami
.baknaraz
Przywracanie – pełna zakładka restore:
- wybór pliku
.bak(lub.zip/.7z/.bak.enc– automatyczne rozpakowanie/odszyfrowanie) - przywracanie do oryginalnej lokalizacji lub wskazanych folderów dla MDF i LDF osobno
- zmiana nazwy bazy przy przywracaniu
- opcje
WITH REPLACEiWITH NORECOVERY - okno potwierdzenia przed wykonaniem
Wymagania:
pyodbc>=4.0.39
schedule>=1.2.0
cryptography>=41.0.0
# OneDrive (Microsoft Graph API)
msal>=1.24.0
requests>=2.31.0
# Google Drive API – uzywa tego samego requests
# (brak dodatkowych zaleznosci)
# MEGA – uzywa requests + cryptography (juz powyzej)
# Opcjonalnie dla silniejszego szyfrowania ZIP (nie wymagane):
# pycryptodome>=3.19.0

