X-Git-Url: https://git.p6c8.net/dsmonrot.git/blobdiff_plain/26ed9f00445f833c5416d9174db4c4ad03dfec89..HEAD:/dsmonrot.ps1 diff --git a/dsmonrot.ps1 b/dsmonrot.ps1 index 7012cf1..ffe4f46 100644 --- a/dsmonrot.ps1 +++ b/dsmonrot.ps1 @@ -42,6 +42,10 @@ # 0 or less for indefinite # You should set this to at least the same as $keepMonths [Int32]$keepLogs = 2 +# Comma separated lists of files and directories to exclude from the backup +# See http://www.drivesnapshot.de/en/commandline.htm +# Comment out if you don't want to use it +#[String]$excludedPaths = "Path1,Path2" # Map network share to this drive letter, comment out if you don't want to use it [String]$smbDrive = "Z" @@ -211,7 +215,7 @@ function Send-Email([String]$body) { } } -function Rotate-Backup { +function Invoke-BackupRotation { if($keepMonths -lt 0) { return } @@ -231,7 +235,7 @@ function Rotate-Backup { } } -function Rotate-Log { +function Invoke-LogRotation { if($keepLogs -le 0) { return } @@ -327,8 +331,13 @@ if($errorMessages.Count -eq 0) { $backupTargetDiff = $backupTargetDiff + "-" + $currTime } + # Compose the "exclude" parameter if necessary + if($excludedPaths) { + $dsAdditionalArgs += "--exclude:" + $excludedPaths + } + # Check if the backup target for this month, the directory for the full backup - # and the hash files exists. In this case we do a differential backup. + # and the hash files exist. In that case we do a differential backup. if((Test-Path $backupTarget) -and (Test-Path $backupTargetFull) -and (Test-Path "$backupTargetFull\*.hsh")) { # Do a differential backup @@ -398,7 +407,7 @@ if($errorMessages.Count -eq 0) { if($errorMessages.Count -eq 0) { if($rotateBeforeBackup) { - Rotate-Backup + Invoke-BackupRotation } $dsLogPath = if($dsLogFileToBackup) { "$backupTargetFull\$dsLogFile" } else { $dsLogFile } @@ -420,7 +429,7 @@ if($errorMessages.Count -eq 0) { } if($rotateBeforeBackup -eq $False -and $success -eq $True) { - Rotate-Backup + Invoke-BackupRotation } } } @@ -441,7 +450,8 @@ if($errorMessages.Count -eq 0) { } # Rotate the log files - Rotate-Log + Invoke-LogRotation + } # If there was any error message recorded, send a mail if configured