🌐

WWW Backup Script

Daglig komprimeret backup af /var/www/html med automatisk oprydning

📊 Flowdiagram

WWW Backup Script — Flowdiagram 🚀 Start 🔍 Tjek SOURCE_DIR eksisterer? ❌ FEJL exit 1 nej 📁 Opret BACKUP_DIR (hvis mangler) 🗜️ tar -czf → www_backup_TIMESTAMP.tar.gz ✅ Backup OK? (PIPESTATUS + filcheck) ❌ FEJL exit 1 nej ved succes 🔒 chmod 640 (sæt permissions) 🗑️ Slet backups ældre end 30 dage 📊 Tæl backups + beregn samlet størrelse 📝 Log resultat til LOG_FILE ✅ exit 0 Legende Hoved-trin Oprydning Fejl / exit 1

📋 Trin-for-trin forklaring

1

Opsætning

Definerer SOURCE_DIR, BACKUP_DIR, tidsstempel til filnavn og logfil-sti. Retention er sat til 30 dage.

2

Tjek source-mappe

Verificerer at /var/www/html eksisterer. Hvis ikke, logges fejl og scriptet afslutter med exit 1.

3

Opret backup-mappe

Opretter /data/backup med mkdir -p hvis den ikke allerede findes.

4

Lav backup med tar

Komprimerer /var/www/html til én .tar.gz-fil med tidsstempel i filnavnet, f.eks. www_backup_20250222_120000.tar.gz.

5

Verificer backup

Tjekker PIPESTATUS[0] (tar's exit-kode) og at filen faktisk er oprettet. Fejl → log + exit 1.

6

Sæt permissions

chmod 640 på backup-filen — læsbar af ejer og gruppe, men ikke andre.

7

Oprydning

Finder og sletter alle www_backup_*.tar.gz-filer ældre end 30 dage. Logger antal slettede filer.

8

Status-rapport

Tæller tilbageværende backups og beregner samlet diskforbrug med du -sh. Alt logges til www_backup.log.

⚙️ Konfiguration

VariableBeskrivelse
SOURCE_DIRMappe der tages backup af (/var/www/html)
BACKUP_DIRDestination for backup-filer (/data/backup)
RETENTION_DAYSAntal dage backups gemmes (default: 30)
LOG_FILESti til logfil
TIMESTAMPDato/tid-streng i filnavn (%Y%m%d_%H%M%S)

📁 Filnavn-format

Hvert backup-fil navngives:

www_backup_20250222_143012.tar.gz

timestamp = ÅÅÅÅmmdd_HHMMSS

📅 Retention – 30 dage lokalt

Beholdes
Slettes efter 30 dage
Dag 0Dag 30 → slettet

🔐 Permissions

Backup-filer sættes til chmod 640:

Ejer læse + skrive
Gruppe kun læse
Andre ingen adgang

📝 Log-output eksempel

[2025-02-22 14:30:01] === Start backup af /var/www/html ===
[2025-02-22 14:30:01] Opretter backup: www_backup_20250222_143001.tar.gz
[2025-02-22 14:30:04] ✓ Backup oprettet: www_backup_20250222_143001.tar.gz (142M)
[2025-02-22 14:30:04] Sletter backups ældre end 30 dage...
[2025-02-22 14:30:04] Slettet: www_backup_20250123_020001.tar.gz
[2025-02-22 14:30:04] Antal backups i alt: 29
[2025-02-22 14:30:04] Total backup størrelse: 3.8G
[2025-02-22 14:30:04] === Backup færdig ===