I’m all about setting it and forgetting it and hopefully this wrapper script helps you do that. I setup this script in 2018 and it’s been performing flawlessly ever since. I know PFsense does it’s own cloud backup but I like to have my own local backup just in case.
Everything is available on github: https://github.com/badbread/breadsPFsenseAutoBackup
Prerequisites
- A windows machine
- Both scripts use KoenZomers pfSenseBackup
- pfsensebackup.ps1 utlizes copypastedevelopers pushoverCLI for pushover notifications
- pfsensebackupv2.ps1 utilizes Kieranties PS-Pushover for pushover notifications
Features
- Logs everything it does
- Sends pushover alerts on both success and failures (can be toggled on or off)
- Auto-deletes old backups after ‘X’ amount of days
- Only auto-deletes if ‘X’ number of backup files exist
- pfsensebackupv2.ps1 is completely self configuring, prompts and stores your inputs in an .xml file
pfsensebackup.ps1 – configuration
- Edit the Powershell script and change the below variables to match your environment:
$backupdir = "" #where your backup files will go (leave a trailing backslash)
$appdir = "" #where the backup app exe lives (leave a trailing backslash)
$username = "" #PFSense Username
$pw = "" #PFSense Password
$pfaddress = "192.168.x.x" #PFSense address
$retention = "-30" #how many days to keep old backup files (Must be negative value, -30 = files older than 30 days)
$fileName = "pfsensebackup" #name of your log file (put into your $backupdir)
$usepush = "y" #use pushover? (y or n)
$pushoverapp = "c:\somepath\pushovercli.exe" #location of the pushovercli
$minbackups = "5" #minimum number of backup files before files are auto-deleted
- Create a new scheduled task in Windows with the following:
- General Tab “Run whether a user is logged in or not” selected -> Action “Start a program” -> Program/Script “Powershell” -> Add Arguments “-f c:\pathtoyourscript\pfsensebackup.ps1”
- If you are using Pushover for notifications configure https://github.com/copypastedeveloper/PushoverCli

