Restic Backup Script überarbeitet
This commit is contained in:
@@ -1,26 +1,52 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Das Skript funktioniert nur, wenn der restic server authentication deaktiviert hat.
|
||||
# ======== Bash Einstellungen =======
|
||||
set -euo pipefail
|
||||
set +H
|
||||
|
||||
# Das Skript braucht unter Umständen root/sudo Rechte.
|
||||
# Für einen cronjob sollte das Skript desshalb im Crontab des root-Users eingebunden werden
|
||||
# um crontab zu bearbeiten 'crontab -e' ausführen und Script mit entsprechenden Parametern einfügen
|
||||
#
|
||||
# Zuerst muss ein restic Repository erstellt werden:
|
||||
# restic -r rest:http://<ip>:<port>/target-dest/ init
|
||||
|
||||
### Backup-Pfade ###
|
||||
BACKUP_PATH="/paht/to/local/directory"
|
||||
# ======== Konfiguration ========
|
||||
BACKUP_PATH_1="/path/to/local/directory"
|
||||
BACKUP_PATH_2="/path/to/local/directory"
|
||||
REPO=""
|
||||
PW_FILE=""
|
||||
LOG_FILE=""
|
||||
RESTIC_BIN="/usr/bin/restic" # ggf. anpassen
|
||||
|
||||
### Restic Flags ###
|
||||
set +H # ?????
|
||||
# ======= Umgebungsvariablen =======
|
||||
export RESTIC_REPOSITORY="$REPO"
|
||||
export RESTIC_PASSWORD_FILE="$PW_FILE"
|
||||
|
||||
### Restic Konfiguration ###
|
||||
export RESTIC_REPOSITORY="rest:http://<ip>:<port>/repository/"
|
||||
export RESTIC_PASSWORD="1234" # sicheres Passwort setzen
|
||||
|
||||
### Alte Backups aufräumen ###
|
||||
restic forget --keep-last 3 --prune
|
||||
# ======= Logging =======
|
||||
exec > >(tee -a "$LOGFILE") 2>&1
|
||||
trap 'echo "Fehler beim Backup!" >&2; exit 1' ERR
|
||||
|
||||
### Backup durchführen ##
|
||||
restic backup "BACKUP_PATH" --tag "<usefull tag>"
|
||||
|
||||
# ======== Backups für 3 Tage behalten ========
|
||||
"$RESTIC_BIN" forget --keep-last 3 --prune
|
||||
|
||||
|
||||
# ======== ASCII ========
|
||||
cat << "EOF"
|
||||
____ _ _
|
||||
| _ \ ___ ___| |_(_) ___
|
||||
| |_) / _ \/ __| __| |/ __|
|
||||
| _ < __/\__ \ |_| | (__
|
||||
|_| \_\___||___/\__|_|\___|
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
# ======== Backup durchführen ========
|
||||
echo " ==== Backup starten ====="
|
||||
|
||||
if [[ -n "$BACKUP_PATH_1" ]]; then
|
||||
"RESTIC_BIN" backup "$BACKUP_PATH_1" --tag "<usefull tag>"
|
||||
fi
|
||||
|
||||
if [[ -n "$BACKUP_PATH_2" ]]; then
|
||||
"RESTIC_BIN" backup "$BACKUP_PATH_2" --tag "<usefull tag>"
|
||||
fi
|
||||
|
||||
echo "==== Backup abgeschlossen ====
|
||||
|
Reference in New Issue
Block a user