đź”§ Automatisches Silent Backup Skript mit Firebird (Windows Batch-Skript)
Dieser Artikel beschreibt, wie Sie ein automatisches Firebird-Datenbank-Backup einrichten, das im Hintergrund läuft, ohne dass eine Benutzerbestätigung erforderlich ist. Das Skript erstellt Backups, protokolliert den Ablauf und löscht alte Sicherungen automatisch – vollständig autonom und wartungsfrei.
đź“‹ Voraussetzungen
Bevor Sie beginnen, stellen Sie bitte sicher, dass:
-
Firebird (z. B. Version 4.0) auf Ihrem System installiert ist,
-
Sie Schreibrechte auf das Backup-Verzeichnis besitzen,
-
die Datei gbak.exe vorhanden ist (normalerweise im Firebird-Installationspfad),
-
und der Windows Task Scheduler (Aufgabenplanung) verfĂĽgbar ist.
đź’» Das Backup-Skript
Speichern Sie das folgende Skript als portier_backup.bat
:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
:: ================== Einstellungen ==================
set "FBPATH=C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe"
set "DBPATH=C:\portier\vision5\PORTIERVISION.GDB"
set "BKPATH=C:\portier\Backup"
set "USER=SYSDBA"
set "PASS=masterkey"
set "RETENTION_DAYS_BACKUPS=14"
set "RETENTION_DAYS_LOGS=30"
:: ====================================================
:: --- VorprĂĽfungen & Ordner anlegen ---
if not exist "%BKPATH%" mkdir "%BKPATH%" 2>nul
if not exist "%BKPATH%" exit /b 2
if not exist "%DBPATH%" exit /b 3
if not exist "%FBPATH%" exit /b 4
:: --- Zeitstempel fĂĽr Dateinamen ---
for /f %%i in ('powershell -NoProfile -Command "(Get-Date).ToString(\"yyyy-MM-dd_HH-mm-ss\")"') do set "STAMP=%%i"
set "BKFILE=%BKPATH%\portier_%STAMP%.fbk"
set "LOGFILE=%BKPATH%\backup_log_%STAMP%.txt"
(
echo ==================================================
echo Backup gestartet: %DATE% %TIME%
echo gbak: "%FBPATH%"
echo DB : "%DBPATH%"
echo Ziel: "%BKFILE%"
echo ==================================================
)>>"%LOGFILE%"
:: --- Backup ausfĂĽhren (silent) ---
"%FBPATH%" -b -v -user %USER% -pas %PASS% "%DBPATH%" "%BKFILE%" >>"%LOGFILE%" 2>&1
set "RC=%ERRORLEVEL%"
if "%RC%"=="0" (
echo [%DATE% %TIME%] Backup OK >>"%LOGFILE%"
) else (
echo [%DATE% %TIME%] FEHLER, Code %RC% >>"%LOGFILE%"
)
:: --- Aufräumen: alte Backups ---
echo.>>"%LOGFILE%"
echo [%DATE% %TIME%] Aufräumen: *.fbk älter als %RETENTION_DAYS_BACKUPS% Tage >>"%LOGFILE%"
forfiles /p "%BKPATH%" /m *.fbk /d -%RETENTION_DAYS_BACKUPS% /c "cmd /c del /q /f @path" 2>>"%LOGFILE%"
:: --- Aufräumen: alte Logs ---
echo [%DATE% %TIME%] Aufräumen: Logs älter als %RETENTION_DAYS_LOGS% Tage >>"%LOGFILE%"
forfiles /p "%BKPATH%" /m backup_log_*.txt /d -%RETENTION_DAYS_LOGS% /c "cmd /c del /q /f @path" 2>>"%LOGFILE%"
echo ==================================================>>"%LOGFILE%"
echo Backup abgeschlossen. >>"%LOGFILE%"
endlocal & exit /b %RC%
🧠Erklärung der wichtigsten Abschnitte
Abschnitt | Beschreibung |
---|---|
Einstellungen | Definiert die Pfade und Zugangsdaten für Firebird, die Datenbank und das Backup-Verzeichnis. Hier können Sie auch die Aufbewahrungsdauer für Backups und Logdateien anpassen. |
Vorprüfungen | Das Skript prüft, ob alle benötigten Dateien und Ordner vorhanden sind. Fehlt etwas, wird der Vorgang automatisch mit einem entsprechenden Rückgabewert beendet. |
Zeitstempel | Erstellt einen eindeutigen Zeitstempel (yyyy-MM-dd_HH-mm-ss ), damit jedes Backup und Logfile klar voneinander unterscheidbar ist. |
Backup-Befehl | Führt das eigentliche Backup mit gbak.exe aus. Die Parameter -b (Backup) und -v (detaillierte Ausgabe) erzeugen eine vollständige Sicherung der Datenbank. |
Silent Mode | Das Skript läuft vollständig im Hintergrund – keine Pause, keine Benutzerabfrage, keine Konsolenmeldung. Alle Informationen werden direkt ins Logfile geschrieben. |
Exit-Codes | Nach Abschluss beendet sich das Skript automatisch mit einem Rückgabewert (z. B. 0 = erfolgreich, 3 = Datenbank nicht gefunden). Diese Codes können bei Bedarf zur Überwachung genutzt werden. |
Fehlerbehandlung | Erfolgreiche oder fehlerhafte Backups werden mit Datum und Uhrzeit protokolliert. So lässt sich der Verlauf jederzeit nachvollziehen. |
Logfiles | Jeder Lauf erzeugt ein eigenes Logfile mit Zeitstempel. Damit bleibt die Backup-Historie nachvollziehbar. |
Aufräumroutine | Alte Backup- (.fbk ) und Logdateien werden automatisch gelöscht, sobald sie älter sind als die eingestellten Aufbewahrungsfristen. |
đź§ľ Beispielausgabe im Logfile
==================================================
Backup gestartet: 13.10.2025 07:00:01
gbak: "C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe"
DB : "C:\portier\vision5\PORTIERVISION.GDB"
Ziel: "C:\portier\Backup\portier_2025-10-13_07-00-01.fbk"
==================================================
Starte Backup...
gbak: creating file C:\portier\Backup\portier_2025-10-13_07-00-01.fbk
gbak: writing data...
gbak: finishing, closing, and going home
[13.10.2025 07:01:12] Backup OK
đź•’ Einrichtung als geplanter Task (empfohlen)
So fĂĽhren Sie das Skript automatisch im Hintergrund aus:
-
Ă–ffnen Sie die Windows-Aufgabenplanung (
taskschd.msc
). -
Wählen Sie Aufgabe erstellen.
-
Unter Allgemein:
-
Name:
portier Firebird Backup Silent
-
Aktivieren Sie „Mit höchsten Privilegien ausführen“
-
Aktivieren Sie „Unabhängig von der Benutzeranmeldung ausführen“
-
-
Unter Trigger:
-
Neu → „Täglich um 02:00 Uhr“
-
-
Unter Aktionen:
-
Programm:
C:\portier\backup\portier_backup_silent.bat
-
-
Speichern Sie die Aufgabe.
-
Testen Sie die Aufgabe mit Rechtsklick → „Ausführen“.
đź’ˇ Tipp:
Das Backup läuft danach vollständig im Hintergrund – kein Fenster, keine Eingabe, keine Bestätigung.
âś… Fazit
Mit diesem angepassten Silent-Mode-Skript sichern Sie Ihre Firebird-Datenbank vollautomatisch und ohne Benutzerinteraktion.
Kombiniert mit der Windows-Aufgabenplanung erhalten Sie eine zuverlässige, sichere und wartungsfreie Backup-Lösung für Ihre portier-Installation.