Influxdb Backup aus Docker Container

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

nw378

Benutzer
Registriert
04. Jan. 2017
Beiträge
3
Reaktionspunkte
0
Punkte
1
Hallo,

ich versuche mich gerade an der Backup-Erstellung. Ziel soll es sein, ein automatisches, regelmäßiges Backup zu erstellen, und dieses dann zum Beispiel in OneDrive zu speichern.

Das Backup erstelle ich aktuell in der Konsole mittels

sudo docker exec bdec12344169 influx backup /var/lib/influxdb2 -token HxxxxxxxxxxxxxxTVuRer0iMXoERu7D7uLB3xmbdBcwRxATMNZJ9GoXoQTFla2KdYtxqbUvVR4a-iKQDmgq34Q==

So weit, so gut.

Es werden zahlreiche .gz Dateien erzeugt.

Wie kann ich diese (per Batch?) zu einem ZIP zusammenfassen und dann nach OneDrive schicken?

Idealerweise alles zusammen, nacheinander, täglich. Per Crontab? Gibt`s das auf der Syno?
 
Aufgabe selber gelöst.

Skript erstellt, nach Vorlage von https://www.laub-home.de/wiki/Docker_InfluxDB_2_Backup_Script

Code:
#!/usr/bin/env bash

export LANG="en_US.UTF-8"
#Load the Pathes
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# set the variables

# Where to store the Backup files?
# mount that directory to /backup into the influxdb containers
BACKUPDIR=/volume1/docker/influxdb/backup

# How many Days should a backup be available?
DAYS=2

TIMESTAMP=$(date +"%Y%m%d%H%M")

CONTAINER=$(docker ps --format '{{.Names}}:{{.Image}}' | grep 'influxdb' | cut -d":" -f1)

### Do the stuff
echo -e "Start $TIMESTAMP Backup for Databases: \n"
if [ ! -d $BACKUPDIR ]; then
        mkdir -p $BACKUPDIR
fi

for i in $CONTAINER; do
        echo -e " create Backup for Database on Container:\n  * $i";
        docker exec -e i=$i -e TIMESTAMP=$TIMESTAMP $i influx backup --compression gzip /backup/influxdb/$i-$TIMESTAMP > /dev/null 2>&1
        # dont delete last old backups!
        OLD_BACKUPS=$(ls -d1 $BACKUPDIR/$i* |wc -l)
        if [ $OLD_BACKUPS -gt $DAYS ]; then
                find $BACKUPDIR -maxdepth 1 -name "$i*" -type d -daystart -mtime +$DAYS -type d -exec rm -rf {} \;
        fi
done
echo -e "\n$TIMESTAMP Backup for Databases completed\n"

Ausführung täglich mittels Syno Aufgabenplaner.

Und Sync mit OneDrive mittels CloudSync.
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat