Releases: kmwoley/restic-windows-backup
Release list
1.8
Summary
-
New features
- Added
update.ps1which makes updatingrestic-windows-backupinstallations easier. - Added the ability to run custom actions at the start and end of the script execution. Can be used to invoke healthchecks or run custom scripts. Look at
config_sample.ps1for examples.
- Added
-
Bug fixes
- Explicitly test the backup source media for VSS support instead of assuming it is or is not supported
- Install script sets Task Scheduler user LogonType correctly, fixing #40
- Error checking of restic.exe results fixed (was broken by release 1.7.1)
Full Changelog: 1.7.1...1.8
1.7.1
Summary
- (Optionally) prevent backup & maintenance while on a metered network connection. By default, backups will occur while on a metered network connection. To disable backups over metered network connections, set
$BackupOnMeteredNetwork = $falseinconfig.ps1 - Added
$GlobalParameters = @()configuration variable, which will apply additional configuration parameters every timerestic.exeis run. This is useful to add options for different types of backend targets. - Added
$SelfUpdateEnabled = $trueconfiguration variable, which can be used to disablerestic.exefrom automatically updating to the latest version when maintenance is run. To disable self update, set$SelfUpdateEnabled = $falseinconfig.ps1
What's Changed
- Add optional configuration options for additional parameters to resti… by @woelfisch in #96
- Add feature to control backups on metered connections by @innovara in #108
New Contributors
- @woelfisch made their first contribution in #96
Full Changelog: 1.7...1.7.1
1.7
Summary
Improved support for PowerShell 7, and email is now sent using Send-MailKitMessage. The install.ps1 script will install NuGet and the Send-MailKitMessage module.
Upgrade Warning - Future Breaking Change
This release deprecates the following secrets.ps1 variables:
$PSEmailServeris replaced by$ResticEmailServer$ResticEmailConfigis replaced by$ResticEmailPort
In a future release, $ResticEmailServer and $ResticEmailPort will be required. This release will still work if the deprecated variables are defined.
What's Changed
- Update README.md by @enzo-g in #58
- fix typo in readme by @jonas-hag in #74
- fix typo by @Export33 in #83
- Added a more detailed example for backup sources by @Export33 in #84
- Limit snapshot pruning to the current host by @living180 in #94
- Allow for unauthenticated SMTP. by @SeeJayEmm in #81
- Replace deprecated Send-MailMessage with Send-MailKitMessage by @innovara in #107
- Merge 2024.11 into Main by @kmwoley in #110
New Contributors
- @enzo-g made their first contribution in #58
- @jonas-hag made their first contribution in #74
- @Export33 made their first contribution in #83
- @living180 made their first contribution in #94
- @SeeJayEmm made their first contribution in #81
- @innovara made their first contribution in #107
Full Changelog: 1.6...1.7
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
$BackupSourcesare 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-diskcommand. - 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$nullor$false, missing drives and/or folders result in an error. The default is set to$falseas 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
$InternetTestAttemptsto0will 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 hostto clean up the aforementioned snapshot grouping & pruning. - Updated the
windows.excludeto 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