Zu Content springen
Deutsch
  • Es gibt keine Vorschläge, da das Suchfeld leer ist.

đź”§ 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:

  1. Ă–ffnen Sie die Windows-Aufgabenplanung (taskschd.msc).

  2. Wählen Sie Aufgabe erstellen.

  3. Unter Allgemein:

    • Name: portier Firebird Backup Silent

    • Aktivieren Sie „Mit höchsten Privilegien ausfĂĽhren“

    • Aktivieren Sie „Unabhängig von der Benutzeranmeldung ausfĂĽhren“

  4. Unter Trigger:

    • Neu → „Täglich um 02:00 Uhr“

  5. Unter Aktionen:

    • Programm: C:\portier\backup\portier_backup_silent.bat

  6. Speichern Sie die Aufgabe.

  7. 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.