Skip to main content

Backup via API

  1. Benutzer erstellen, Berechtigungen müssen so aussehen:

image.png

Danach kann man den ein API Token generieren (rechts neben den Benutzern, sieht aus wie ein Ticket)

Danach z.B auf Synology folgendes Script in Aufgabenplanung erstellen (Anpassen von KEY, SECRET % HOST NÖTIG!)

#!/usr/bin/bash

# Change API key and secret, number of days to keep backups, the path to your backups and the hostname for your firewall

key="xxxxxxxxxxx"
secret="yyyyyyyy"
daystokeep=30
destination="/volume1/bckup/opnsense"
fwhost="IPADRESSE:PORT"

date=$(date +%Y-%m-%d)

result=$(/usr/bin/curl -I -s -k -u "$key:$secret" https://$fwhost/api/core/backup/download/this | head -1)

if [[ $result != *"200"* ]]; then
   echo "Result of the HTTP request is $result"
   exit 1
fi

/usr/bin/curl -s -k -u "$key:$secret" https://$fwhost/api/core/backup/download/this > "$date.xml"
error=$?

if [ $error -gt 0 ]; then
   echo "Curl returned error number $error"
   exit 1
fi

/usr/bin/gzip "$date.xml"
mv "$date.xml.gz" "$destination"
/usr/bin/find "$destination"/* -mtime +$daystokeep -exec rm {} \;