Releases: kmwoley/restic-windows-backup
1.6
Separated backup and maintenance execution loops, including sending separate emails for backup and maintenance reports. This allows for a maintenance failure not to cause a backup to be re-run, and vice-versa. This makes failures take a shorter time to resolve.
Logfiles now are formatted as *.backup.log.txt
and *.maintenance.log.txt
Fixes
- Fixed issue #60, removing duplicate exclude lines
- Fixed several errors where functions would return incorrect success/failure results due to PowerShell's return value semantics
Enhancements
- Updated installer to download v 0.15.0
- Installer will 'self-update' the Restic binary
- Maintenance will 'self-update' the Restic binary
- Added a configuration point for extra / additional parameters to be passed to the backup command (
$AdditionalBackupParameters
)
Full Changelog: 1.5...1.6
1.5
Added support for backing up removable drives (i.e. external USB disks). It's now possible to define a backup source by it's Volume label, device Serial Number, or the hardware Name.
WARNING If you have been previously backing up multiple drives, the default forget
policy was likely pruning backup sets too aggressively and could lead to data loss. You must update your $SnapshotRetentionPolicy
to include @("--group-by", "host,tags", ...
to avoid pruning an entire drive's contents inadvertently!
Fixes
- Updated default snapshot forget/prune retention policy to group by "host,tags" to prevent major data loss. Only configurations with multiple
$BackupSources
are impacted by this change. - Added tags to each backup source to support grouping by tags. For existing backup sets, this change will result in a slightly longer backup the first time this updated script is run.
Enhancements
- External, removable disk drives (i.e. USB hard drives) can be identified by their Volume Label, Serial Number, or Device Name. For example, if you have an external device with the Volume Label "MY BOOK", you can define a backup source as
$BackupSources["MY BOOK"]
. I would recommend using the device serial number to identify external drives to backup, which you can find using the Powershellget-disk
command. - Add the ability to $IgnoreMissingBackupSources. To make sure that errors are not thrown if the device is not present, there is now an option to ignore error reporting when a folder and entire backup source are missing. When
$true
, missing external drives or folders don't produce errors. When$null
or$false
, missing drives and/or folders result in an error. The default is set to$false
as not to silently fail backing up a source. - Updated install script to download Restic 0.12.1
1.4.1
Bugfix release.
Fixes
- Improved URL parsing so that the internet connectivity check works if the URL doesn't provide a protocol
- Add PowerShell 7.1 support to internet connectivity check
Enhancements
- Setting
$InternetTestAttempts
to0
will now bypass the internet connectivity checks entirely
1.4
Moved to using Restic's inbuilt filesystem shadow copy creation (VSS).
Breaking Change
local.exclude
file changes that previously referenced the resticVSS
directory will need to be changed to C:\
or the relevant root drive letter.
Other enhancements
- Future snapshot grouping (and cleanup) will be better since the root-level folders included in the backup won't change (instead, the script targets the root drive letter instead of a list of folders under the drive letter).
- Added the ability to set prune parameters via
.\config.ps1
, and defaulted the settings to--group-by host
to clean up the aforementioned snapshot grouping & pruning. - Updated the
windows.exclude
to include additional directories (most notably, the Recycle Bin is no longer backed up)
1.3
1.2.1
Additional maintenance & email configuration options
Users can now set the following variables to control sending emails on success and/or error conditions.
Users can now completely disable maintenance activities.
New config.ps1
variable defaults for these options:
$SnapshotMaintenanceEnabled = $true
$SendEmailOnSuccess = $false
$SendEmailOnError = $true
Initial Release
Provides core functionality for installation and daily backups.