Skip to content

Instantly share code, notes, and snippets.

@kburdett
Created March 4, 2016 03:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kburdett/5cff166bff330e6e16e4 to your computer and use it in GitHub Desktop.
Save kburdett/5cff166bff330e6e16e4 to your computer and use it in GitHub Desktop.
Pulls pfSense backup XMLs
#!/bin/sh
username=backup
password=<PASSWORD>
host=<HOSTNAME>
backupFolder=<BACKUP_FOLDER>
backupUrl=https://$host/diag_backup.php
temp1=/tmp/pfsense_backup_temp1
temp2=/tmp/pfsense_backup_temp2
cookies=/tmp/pfsense_backup_cookies
touch $temp1 $temp2 $cookies
trap 'rm -f "$temp1"; rm -f "$temp2"; rm -f "$cookies"; echo "Cleanup successful"' EXIT
echo Grabbing CSRF Magic
wget \
-qO- \
--keep-session-cookies \
--save-cookies $cookies \
--no-check-certificate \
$backupUrl \
| grep "name='__csrf_magic'" \
| sed 's/.*value="\(.*\)".*/\1/' \
> $temp1
echo Logging in to backup page
wget \
-qO- \
--keep-session-cookies \
--load-cookies $cookies \
--save-cookies $cookies \
--no-check-certificate \
--post-data "login=Login&usernamefld=${username}&passwordfld=${password}&__csrf_magic=$(cat $temp1)" \
$backupUrl \
| grep "name='__csrf_magic'" \
| sed 's/.*value="\(.*\)".*/\1/' \
> $temp2
echo Downloading config XML
wget \
--keep-session-cookies \
--load-cookies $cookies \
--no-check-certificate \
--post-data "Submit=download&donotbackuprrd=yes&__csrf_magic=$(cat $temp2)" \
$backupUrl \
-O $backupFolder/config-${host}-$(date +%Y%m%d%H%M%S).xml
echo Cleaning up backup directory
ls -td $backupFolder/* | awk 'NR>60' | xargs rm -f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment