Runbook: Config-Backup

Trajanje: ~5 minut
Vloga: Sistemski administrator
Pogostost: Po vsaki spremembi, tedensko

Varnostna kopija konfiguracije Gateway in certifikatov.


Potek dela

flowchart TD A[Začetek] --> B[Identificiraj datoteke] B --> C[Ustvari arhiv] C --> D[Kopiraj na varnostno shrambo] D --> E[Preveri celovitost] E --> F{V redu?} F -->|Da| G[Dokumentiraj] F -->|Ne| H[Ponovno shrani] style G fill:#e8f5e9 style H fill:#ffebee


1. Datoteke za varnostno kopijo

Datoteka/Mapa Opis Kritično
————–————–———-
appsettings.json Glavna konfiguracija V
appsettings.Production.json Produkcijska povozitev V
certs/ TLS certifikati V
data/*.db SQLite podatkovne baze V
.env Okoljske spremenljivke (če obstajajo) V

2. Ročna varnostna kopija

Linux:

#!/bin/bash
# backup-gateway.sh
 
GATEWAY_DIR="/opt/data-gateway"
BACKUP_DIR="/backup/gateway"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="gateway-config-${DATE}.tar.gz"
 
# Ustvari arhiv
tar -czvf "${BACKUP_DIR}/${BACKUP_FILE}" \
    -C "${GATEWAY_DIR}" \
    appsettings.json \
    appsettings.Production.json \
    certs/ \
    data/
 
# Ustvari kontrolno vsoto
sha256sum "${BACKUP_DIR}/${BACKUP_FILE}" > "${BACKUP_DIR}/${BACKUP_FILE}.sha256"
 
# Izbriši stare varnostne kopije (starejše od 30 dni)
find "${BACKUP_DIR}" -name "gateway-config-*.tar.gz" -mtime +30 -delete
 
echo "Varnostna kopija ustvarjena: ${BACKUP_FILE}"

Windows (PowerShell):

# backup-gateway.ps1
 
$GatewayDir = "%GATEWAY_ROOT%"
$BackupDir = "D:\Backup\Gateway"
$Date = Get-Date -Format "yyyyMMdd_HHmmss"
$BackupFile = "gateway-config-$Date.zip"
 
# Ustvari arhiv
Compress-Archive -Path @(
    "$GatewayDir\appsettings.json",
    "$GatewayDir\appsettings.Production.json",
    "$GatewayDir\certs",
    "$GatewayDir\data"
) -DestinationPath "$BackupDir\$BackupFile"
 
# Kontrolna vsota
Get-FileHash "$BackupDir\$BackupFile" -Algorithm SHA256 |
    Select-Object Hash |
    Out-File "$BackupDir\$BackupFile.sha256"
 
# Izbriši stare varnostne kopije (starejše od 30 dni)
Get-ChildItem "$BackupDir\gateway-config-*.zip" |
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
    Remove-Item
 
Write-Host "Varnostna kopija ustvarjena: $BackupFile"

3. Avtomatizirana varnostna kopija

Linux (Cron):

# /etc/cron.d/gateway-backup
0 2 * * * root /opt/scripts/backup-gateway.sh >> /var/log/gateway-backup.log 2>&1

Windows (Task Scheduler):

# Ustvari nalogo
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
    -Argument "-File %SCRIPTS_PATH%\backup-gateway.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At 2:00AM
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
 
Register-ScheduledTask -TaskName "Gateway Backup" `
    -Action $Action -Trigger $Trigger -Principal $Principal

4. Varnostna kopija na oddaljeno shrambo

Rsync (Linux → NAS):

rsync -avz --delete \
    /backup/gateway/ \
    user@nas.example.com:/volume1/backups/gateway/

AWS S3:

aws s3 cp /backup/gateway/gateway-config-*.tar.gz \
    s3://my-backups/gateway/ \
    --storage-class STANDARD_IA

Azure Blob:

az storage blob upload \
    --account-name mybackups \
    --container-name gateway \
    --file /backup/gateway/gateway-config-*.tar.gz \
    --name gateway-config-$(date +%Y%m%d).tar.gz

5. Obnovitev

# Linux
cd /opt/data-gateway
tar -xzvf /backup/gateway/gateway-config-20241215.tar.gz
 
# Obnovi dovoljenja
chown -R datagateway:datagateway /opt/data-gateway
chmod 600 /opt/data-gateway/certs/*
 
# Ponovno zaženi Gateway
sudo systemctl restart data-gateway
# Windows
Expand-Archive -Path "D:\Backup\Gateway\gateway-config-20241215.zip" `
    -DestinationPath "%GATEWAY_ROOT%" -Force
 
Restart-Service -Name "DataGateway"

6. Kontrolni seznam

# Točka preverjanja V
———–
1 appsettings.json shranjen
2 Certifikati shranjeni
3 SQLite baze shranjene
4 Kontrolna vsota ustvarjena
5 Kopirano na oddaljeno shrambo
6 Obnovitev testirana

Odpravljanje težav

Težava Vzrok Rešitev
————————–
Permission denied Manjkajoče pravice Izvedi kot root/Admin
No space left Shramba polna Izbriši stare varnostne kopije
Checksum mismatch Pokvarjen arhiv Ponovno shrani
Obnovitev neuspešna Napačna dovoljenja Izvedi chown/chmod

Najboljše prakse

Pravilo 3-2-1 za varnostne kopije:

  • 3 kopije podatkov
  • 2 različna medija (lokalno + oblak)
  • 1 kopija izven lokacije

Povezani Runbooks


« <- Varnostne kopije | -> DSN-Export »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional

Zuletzt geändert: dne 29.01.2026 ob 23:35