X-Git-Url: https://git.p6c8.net/dsmonrot.git/blobdiff_plain/f2c9203140f0b87a690880410cd612bf1f034c62..37032f8ca911b735ce08b570f1cbfa9f3c4784ee:/dsmonrot.ps1?ds=inline diff --git a/dsmonrot.ps1 b/dsmonrot.ps1 index bb56cdf..353e0db 100644 --- a/dsmonrot.ps1 +++ b/dsmonrot.ps1 @@ -3,7 +3,7 @@ # # Author: Patrick Canterino # WWW: https://www.patrick-canterino.de/ -# https://github.com/pcanterino/dsmonrot/ +# https://github.com/pcanterino/dsmonrot # License: 2-Clause BSD License # # Drive Snapshot is copyright by Tom Ehlert @@ -13,12 +13,18 @@ # Path to backup directory [String]$backupDir = "Z:\" -# Keep backup for this amount of months (excluding the current month), -1 for indefinite +# Keep backup for this amount of months (excluding the current month), +# -1 for indefinite [Int32]$keepMonths = 2 # Path to Drive Snapshot [String]$dsPath = "C:\Users\Patrick\Desktop\DSMonRot\snapshot.exe" -# Path to Drive Snapshot log file -[String]$dsLogFile = "C:\Users\Patrick\Desktop\DSMonRot\snapshot.log" +# Path to Drive Snapshot log file (specify only the file name if you set +# $dsLogFileToBackup to $True) +#[String]$dsLogFile = "C:\Users\Patrick\Desktop\DSMonRot\snapshot.log" +[String]$dsLogFile = "snapshot.log" +# Set to $True if you want to put the log file of Drive Snapshot into the same +# directory as the backup +[Boolean]$dsLogFileToBackup = $True # Disks to backup, see http://www.drivesnapshot.de/en/commandline.htm [String]$disksToBackup = "HD1:1" # Path to DSMonRot log file @@ -56,7 +62,7 @@ # End of config -$dsAdditionalArgs = @("--logfile:$dsLogFile", "--UseVSS") +$dsAdditionalArgs = @("--UseVSS") # Allow SMTP with SSL and SMTP Auth # see: http://petermorrissey.blogspot.de/2013/01/sending-smtp-emails-with-powershell.html @@ -95,13 +101,11 @@ if($smbDrive) { $smbCredential = New-Object System.Management.Automation.PSCredential($smbUser, $secSmbPassword) New-PSDrive -Name $smbDrive -PSProvider "FileSystem" -Root $smbPath -Credential $smbCredential -Persist -ErrorAction Stop - #net use "$smbDrive`:" $smbPath $smbPassword /user:$smbUser } else { Write-Host "Without credentials" New-PSDrive -Name $smbDrive -PSProvider "FileSystem" -Root $smbPath -Persist -ErrorAction Stop - #net use "$smbDrive`:" $smbPath } $smbConnected = $True @@ -149,7 +153,9 @@ if((Test-Path $backupTarget) -and (Test-Path $backupTargetFull) -and (Test-Path exit } - $dsArgs = @($disksToBackup, "$backupTargetFull\`$disk.sna", "-h$backupTargetFull\`$disk.hsh") + $dsAdditionalArgs + $dsLogPath = if($dsLogFileToBackup) { "$backupTargetDiff\$dsLogFile" } else { $dsLogFile } + + $dsArgs = @($disksToBackup, "--logfile:$dsLogPath", "$backupTargetDiff\`$disk.sna", "-h$backupTargetFull\`$disk.hsh") + $dsAdditionalArgs Write-Host $dsPath ($dsArgs -join " ") & $dsPath $dsArgs @@ -176,8 +182,10 @@ else { Write-Host "Creating directory $backupTargetFull" New-Item -ItemType directory -Path $backupTargetFull } + + $dsLogPath = if($dsLogFileToBackup) { "$backupTargetFull\$dsLogFile" } else { $dsLogFile } - $dsArgs = @($disksToBackup, "$backupTargetFull\`$disk.sna") + $dsAdditionalArgs + $dsArgs = @($disksToBackup, "--logfile:$dsLogPath", "$backupTargetFull\`$disk.sna") + $dsAdditionalArgs Write-Host $dsPath ($dsArgs -join " ") & $dsPath $dsArgs @@ -214,7 +222,6 @@ if($isDiff -eq $False -and $success -eq $True -and $keepMonths -ge 0) { if($smbConnected) { Write-Host "Disconnecting network drive" Remove-PSDrive $smbDrive - #net use "$smbDrive`:" /delete } if($emailOnError -and $errorMessages.Count -gt 0) {