SH Script - Upload auf Koofr

Hallo Leute,

hier stelle ich euch mein eigenes SH-Script für das Backup eures Linux Servers vor.

Mit diesem Script könnt ihr eure Dateien auf dem Cloud Dienst Koofr uploaden. Es erstellt natürlich auch ein lokales Backup für euch.

Es beinhaltet auch eine txt Datei um Verzeichnisse beim Backup auszuschließen.

Hier die backup.sh:

#!/bin/bash

# Backup-Skript for euredomain.de
# Cron Job einrichten!

# Backup erstellen
backup_folder="/opt/containers"  # Pfad zum zu sichernden Ordner
backup_destination="/root/container_backup"  # Pfad zum Speichern der Backup-Dateien
backup_filename="euredomain.de_$(date +%Y%m%d%H%M%S).tar.gz"  # Backup-Dateiname mit Zeitstempel
tar --exclude-from="exclude_file.txt" -czvf "$backup_destination/$backup_filename" "$backup_folder" 

echo "Backup erfolgreich erstellt: $backup_destination/$backup_filename"

# Anzahl der vorhandenen Backups ermitteln
backup_count=$(ls -l "$backup_destination" | grep -c "euredomain.de_.*\.tar\.gz")

# Wenn mehr als 5 Backups vorhanden sind, das älteste Backup löschen
if [ "$backup_count" -gt 5 ]; then
    oldest_backup=$(ls -t "$backup_destination" | grep "euredomain.de_.*\.tar\.gz" | tail -1)
    rm "$backup_destination/$oldest_backup"
    echo "Ältestes Backup gelöscht: $backup_destination/$oldest_backup"
fi

# Backup auf Koofr hochladen
koofr_username="deineEmail@email.com"  # Koofr Benutzername
koofr_password="deinPasswort"  # Koofr Passwort
koofr_folder=""  # Koofr Zielordner
koofr_upload_url="https://app.koofr.net/dav/Koofr/$koofr_folder/$backup_filename"

curl -T "$backup_destination/$backup_filename" -u "$koofr_username:$koofr_password" https://app.koofr.net/dav/Koofr/server_backup/$backup_filename

# curl -u "$koofr_username:$koofr_password"  "$koofr_upload_url"
echo "Backup erfolgreich auf Koofr hochgeladen: $koofr_folder/$backup_filename"

Hier die exclude_file.txt:

/opt/containers/nextcloud/app
/opt/containers/nextcloud/daten
/opt/containers/jellyfin/

Script installieren:

  1. Dateien erstellen auf dem Server.
  2. Rechtevergabe beachten.
  3. Starten.

Wer Fragen hat oder etwas unklar ist bitte gerne nachfragen!

In Zukunft findet ihr meine kleinen Scripte uvm. hier: