v1.5: Lokales Datenbank-Backup nach D:\VPS_Backup
- backup/vps-db-backup.cmd: pg_dump | gzip vom Container mp-db via plink, Ablage D:\VPS_Backup\mieterportal\mieterportal-db-YYYY-MM-DD.sql.gz - 14-taegige Aufbewahrung (forfiles), Plausibilitaetspruefung (Exitcode, Mindestgroesse), Log in backup.log - Aufgabenplanung: taeglich 03:17 Uhr (interaktiv, Benutzer ah wegen Z:-Key) - Probelauf erfolgreich, Doku in kimi.md
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
@echo off
|
||||
rem ============================================================
|
||||
rem Hinterstein Mieterportal - Datenbank-Backup auf D:\VPS_Backup
|
||||
rem Holt ein pg_dump vom VPS (Container mp-db) und legt es lokal
|
||||
rem als gzip ab. Aufbewahrung: 14 Tage (forfiles).
|
||||
rem Laeuft ueber Aufgabenplanung (taeglich 03:17 Uhr, Benutzer ah,
|
||||
rem nur bei angemeldetem Benutzer - Z:-Laufwerk mit SSH-Key noetig).
|
||||
rem Achtung: Keine Klammern in Echo-Texten innerhalb von IF-Bloecken
|
||||
rem (wuerden den Block vorzeitig schliessen) - daher Labels statt Blöcke.
|
||||
rem ============================================================
|
||||
setlocal
|
||||
set ZIEL=D:\VPS_Backup\mieterportal
|
||||
set PLINK=C:\Program Files\PuTTY\plink.exe
|
||||
set HOSTKEY=SHA256:4G3UxsugNkHH6BrPXScLXh+vX8P1sLgWKn8cZBKSRxw
|
||||
set KEY=Z:\Devel\ssh\priv_ionos_hocks_vps.ppk
|
||||
set PORT=38592
|
||||
set SERVER=root@hocks.eu
|
||||
set LOG=%ZIEL%\backup.log
|
||||
|
||||
if not exist "%ZIEL%" mkdir "%ZIEL%"
|
||||
|
||||
for /f %%d in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd"') do set DATUM=%%d
|
||||
set DATEI=%ZIEL%\mieterportal-db-%DATUM%.sql.gz
|
||||
|
||||
echo [%DATE% %TIME%] Backup startet nach %DATEI% >> "%LOG%"
|
||||
"%PLINK%" -batch -hostkey "%HOSTKEY%" -i "%KEY%" -P %PORT% %SERVER% "docker exec mp-db sh -c 'pg_dump -U mp -d mieterportal | gzip -9'" > "%DATEI%"
|
||||
if errorlevel 1 goto :fehler_plink
|
||||
|
||||
for %%S in ("%DATEI%") do set GROESSE=%%~zS
|
||||
if %GROESSE% LSS 10000 goto :fehler_klein
|
||||
|
||||
rem Aufbewahrung: Dateien aelter als 14 Tage loeschen
|
||||
forfiles /p "%ZIEL%" /m mieterportal-db-*.sql.gz /d -14 /c "cmd /c del @path" 2>nul
|
||||
|
||||
echo [%DATE% %TIME%] OK: %GROESSE% Bytes, Aufraeumen abgeschlossen >> "%LOG%"
|
||||
endlocal
|
||||
exit /b 0
|
||||
|
||||
:fehler_plink
|
||||
echo [%DATE% %TIME%] FEHLER: plink oder pg_dump lieferte Exitcode 1 oder hoeher >> "%LOG%"
|
||||
if exist "%DATEI%" del "%DATEI%"
|
||||
endlocal
|
||||
exit /b 1
|
||||
|
||||
:fehler_klein
|
||||
echo [%DATE% %TIME%] FEHLER: Dump zu klein ^(%GROESSE% Bytes^) - vermutlich Fehlerausgabe statt Dump >> "%LOG%"
|
||||
del "%DATEI%"
|
||||
endlocal
|
||||
exit /b 1
|
||||
Reference in New Issue
Block a user