opnsense_backup.sh
· 623 B · Bash
Raw
#!/bin/bash
set -eeuo pipefail
# your configuration constants
# generate key and secret on /ui/auth/user
OPNSENSE_URL="https://opnsense.yournetwork.lan"
OPNSENSE_KEY=""
OPNSENSE_SECRET=""
GPG_RECIPIENT=""
BACKUP_DESTINATION="./backups"
# general constants
API_PATH="/api/core/backup/download/this"
DATE_FORMAT="%Y_%m_%d_%H_%M"
DATE=$(date +"${DATE_FORMAT}")
BACKUP_FILENAME="${BACKUP_DESTINATION}/${DATE}.xml.gz.gpg"
curl -k -f -u "${OPNSENSE_KEY}:${OPNSENSE_SECRET}" "${OPNSENSE_URL}${API_PATH}" \
| gzip -c - \
| gpg -e -r ${GPG_RECIPIENT} > ${BACKUP_FILENAME}
echo "Written opnsense backup to ${BACKUP_FILENAME}"
| 1 | #!/bin/bash |
| 2 | set -eeuo pipefail |
| 3 | |
| 4 | # your configuration constants |
| 5 | # generate key and secret on /ui/auth/user |
| 6 | OPNSENSE_URL="https://opnsense.yournetwork.lan" |
| 7 | OPNSENSE_KEY="" |
| 8 | OPNSENSE_SECRET="" |
| 9 | GPG_RECIPIENT="" |
| 10 | BACKUP_DESTINATION="./backups" |
| 11 | |
| 12 | # general constants |
| 13 | API_PATH="/api/core/backup/download/this" |
| 14 | DATE_FORMAT="%Y_%m_%d_%H_%M" |
| 15 | DATE=$(date +"${DATE_FORMAT}") |
| 16 | BACKUP_FILENAME="${BACKUP_DESTINATION}/${DATE}.xml.gz.gpg" |
| 17 | |
| 18 | curl -k -f -u "${OPNSENSE_KEY}:${OPNSENSE_SECRET}" "${OPNSENSE_URL}${API_PATH}" \ |
| 19 | | gzip -c - \ |
| 20 | | gpg -e -r ${GPG_RECIPIENT} > ${BACKUP_FILENAME} |
| 21 | |
| 22 | echo "Written opnsense backup to ${BACKUP_FILENAME}" |