Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #MacDaddyBighorn's pfSense backup script
- #This will back up your pfsense config and email you if the backup location isn't ready.
- #There are probably some good improvements to be made, but works for me.
- #Mount path for backup location, to verify mounted and ready (since I encrypt mine I don't want it to try)
- MOUNT_PATH="/mnt/backup/"
- #Path to backup config file
- BACKUP_PATH="/mnt/backup/pfbackup/"
- #pfSense Info
- PFSENSE_IP="https://IP_ADDRESS:PORT/"
- PFSENSE_USER="ADMIN"
- PFSENSE_PASS="PASSWORD"
- #File name to append in front of date
- FILE_NAME="pfSense_"
- # email address details (must be set up email capability on server first)
- EMAIL_FROM='pfSense Backup <[email protected]>'
- EMAIL_TO='[email protected]'
- #Verfy mountpoint is valid (unencrypted, mounted, etc.)
- if mountpoint -q "$MOUNT_PATH"
- then
- curl -L -k --cookie-jar "$BACKUP_PATH"cookies.txt \
- "$PFSENSE_IP" \
- | grep "name='__csrf_magic'" \
- | sed 's/.*value="\(.*\)".*/\1/' > "$BACKUP_PATH"csrf.txt
- curl -L -k --cookie "$BACKUP_PATH"cookies.txt --cookie-jar "$BACKUP_PATH"cookies.txt \
- --data-urlencode "login=Login" \
- --data-urlencode "usernamefld=$PFSENSE_USER" \
- --data-urlencode "passwordfld=$PFSENSE_PASS" \
- --data-urlencode "__csrf_magic=$(cat "$BACKUP_PATH"csrf.txt)" \
- "$PFSENSE_IP" > /dev/null
- curl -L -k --cookie "$BACKUP_PATH"cookies.txt --cookie-jar "$BACKUP_PATH"cookies.txt \
- "$PFSENSE_IP"diag_backup.php \
- | grep "name='__csrf_magic'" \
- | sed 's/.*value="\(.*\)".*/\1/' > "$BACKUP_PATH"csrf.txt
- curl -L -k --cookie "$BACKUP_PATH"cookies.txt --cookie-jar "$BACKUP_PATH"cookies.txt \
- --data-urlencode "download=download" \
- --data-urlencode "donotbackuprrd=yes" \
- --data-urlencode "__csrf_magic=$(head -n 1 "$BACKUP_PATH"csrf.txt)" \
- "$PFSENSE_IP"diag_backup.php > "$BACKUP_PATH$FILE_NAME"`date +%Y"-"%m"-"%d`.xml
- rm "$BACKUP_PATH"cookies.txt
- rm "$BACKUP_PATH"csrf.txt
- #Commented out, no need to notify if successful
- #echo "pfSense Primary Backup Complete" | mail -s "pfSense Backup Complete" -r "$EMAIL_FROM" "$EMAIL_TO"
- else
- echo "pfSense Primary Backup Failed" | mail -s "pfSense Backup Failed" -r "$EMAIL_FROM" "$EMAIL_TO"
- fi
Advertisement
Add Comment
Please, Sign In to add comment