Bevor Sie beginnen, stellen Sie bitte sicher, dass:
Pfade prüfen: Das Skript unten verwendet die typischen Pfade einer Standard-Installation (C:\portier\vision5\PORTIERVISION.GDB und der Firebird-4-Standardpfad). Wenn Ihre Installation oder Ihre Datenbank in einem anderen Verzeichnis liegt, passen Sie FBPATH und DBPATH entsprechend an.
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.
Speichern Sie das folgende Skript als portier_backup.bat:
@echo off
setlocal EnableExtensions EnableDelayedExpansion
:: ================== Settings ==================
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"
:: ====================================================
:: --- Pre-checks & create folder ---
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
:: --- Timestamp for unique filenames ---
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 started: %DATE% %TIME%
echo gbak : "%FBPATH%"
echo DB : "%DBPATH%"
echo Target: "%BKFILE%"
echo ==================================================
) >> "%LOGFILE%"
:: --- Execute backup silently ---
"%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%] ERROR, Code %RC% >> "%LOGFILE%"
)
:: --- Cleanup old backups ---
echo. >> "%LOGFILE%"
echo [%DATE% %TIME%] Cleaning: *.fbk older than %RETENTION_DAYS_BACKUPS% days >> "%LOGFILE%"
forfiles /p "%BKPATH%" /m *.fbk /d -%RETENTION_DAYS_BACKUPS% /c "cmd /c del /q /f @path" 2>> "%LOGFILE%"
:: --- Cleanup old logs ---
echo [%DATE% %TIME%] Cleaning: Logs older than %RETENTION_DAYS_LOGS% days >> "%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 completed. >> "%LOGFILE%"
endlocal & exit /b %RC%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.
==================================================
Backup started: 13.10.2025 07:00:01
gbak : "C:\Program Files (x86)\Firebird\Firebird_4_0\gbak.exe"
DB : "C:\portier\vision5\PORTIERVISION.GDB"
Target: "C:\portier\Backup\portier_2025-10-13_07-00-01.fbk"
==================================================
Starting 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 OKSo 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 SilentAktivieren 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.
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.