- Shell 100%
| install.sh | ||
| README.md | ||
| wow-backup.service | ||
| wow-backup.sh | ||
| wow-backup.timer | ||
wow-backup-scripts
Automatisches Backup von WoW Interface/ und WTF/-Ordnern per rsync + Git.
Entwickelt für Linux-Setups mit Bottles / Wine, läuft aber mit jedem WoW-Installationspfad.
Was wird gesichert?
Interface/— Addon-Dateien und Konfigurationen (ohne Blizzard-eigene Addons)WTF/— Account-Config, Keybinds, Macros, SavedVariables
Alle WoW-Versionen (_retail_, _classic_era_, _anniversary_, _xptr_, ...) werden automatisch erkannt — neue Versionen werden ohne Anpassung mitgesichert.
Features
- Dynamische Erkennung aller WoW-Versionsordner (
_*) - rsync + Git — inkrementelle Backups mit voller History
- Interaktiver Restore — jeden Stand gezielt wiederherstellen
- Auto-Push zu einem Git-Remote (Gitea, Forgejo, GitHub, ...)
- systemd-Timer — automatische Backups alle 6 Stunden
- Config-Datei — kein Hardcoding, pro Rechner konfigurierbar
- Git-Credentials im Installer integriert (HTTPS + Access Token)
Installation
git clone https://git.dkrtn.de/deko/wow-backup-scripts.git
cd wow-backup-scripts
./install.sh
Der Installer fragt interaktiv nach:
- WoW-Installationspfad (sucht automatisch)
- Backup-Verzeichnis (Default:
~/wow-backup) - Auto-Push Einstellung
- Git-Credentials (Server, User, Access Token)
- systemd-Timer Aktivierung
Die Konfiguration wird in ~/.config/wow-backup/config gespeichert.
Befehle
wow-backup.sh backup # Backup erstellen (Default)
wow-backup.sh restore # Stand interaktiv wiederherstellen
wow-backup.sh status # Übersicht: Versionen, letztes Backup, Repo-Größe
wow-backup.sh list # Backup-History anzeigen
wow-backup.sh init # Backup-Repo initialisieren (macht install.sh automatisch)
Fish-Shell:
~/.local/binmuss im PATH sein — einmaligfish_add_path ~/.local/binausführen.
Konfiguration
Die Config liegt in ~/.config/wow-backup/config:
# Pfad zum WoW-Ordner (enthält _retail_, _classic_era_, etc.)
WOW_BASE="/home/deko/games/bottles/wow_12x/drive_c/Program Files (x86)/World of Warcraft"
# Wo das Backup-Repo liegt
BACKUP_DIR="/home/deko/wow-backup"
# Automatisch zum Git-Remote pushen
AUTO_PUSH="true"
# Git-Einstellungen
GIT_REMOTE="origin"
GIT_BRANCH="main"
Umgebungsvariablen überschreiben die Config:
WOW_BACKUP_AUTO_PUSH=true wow-backup.sh backup
WOW_BACKUP_BASE="/anderer/pfad" wow-backup.sh status
systemd-Timer
Der Timer läuft als User-Unit alle 6 Stunden und holt verpasste Backups nach (Persistent=true).
systemctl --user list-timers # Timer anzeigen
systemctl --user status wow-backup # Service-Status
journalctl --user -u wow-backup -f # Logs verfolgen
systemctl --user restart wow-backup.timer # Timer neu starten
rsync-Excludes
Folgende Dateien/Ordner werden nicht gesichert:
Interface/AddOns/Blizzard_*— werden vom Client automatisch wiederhergestelltWTF/Account/*/SavedVariables/*.bak/*.old— Backup-Artefakte von WoWCache/,*.tmp,*.bak
Zusätzliche Excludes können in der Config ergänzt werden:
EXCLUDES+=(
"Interface/AddOns/MeinAddon/"
)
Dateistruktur
wow-backup-scripts/ # Dieses Repo (Skripte)
├── wow-backup.sh # Hauptskript
├── install.sh # Installer
├── wow-backup.service # systemd Service-Unit
├── wow-backup.timer # systemd Timer-Unit
└── README.md
~/wow-backup/ # Backup-Repo (separates Git-Repo)
├── _retail_/
│ ├── Interface/
│ └── WTF/
├── _classic_era_/
│ ├── Interface/
│ └── WTF/
├── _anniversary_/
└── _xptr_/
Voraussetzungen
bash,rsync,gitsystemd(User-Units)- Für Auto-Push: Git-Credentials oder SSH-Key
Lizenz
MIT