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}" |