Posted On January 20, 2020

PowerShell: Hobocopy Backup Software

kimconnect 0 comments
blog.KimConnect.com >> Codes >> PowerShell: Hobocopy Backup Software
# hobocopy-backup.ps1
# Note: this is a quick snippet to demonstrate the use of this utility.
# The good: this software can backup locked/open files using VSS, and its speed is impressive.
# The bad: "incremental" copy does not regenerate files that have been deleted at the destination


# Input variables
$source="C:\temp"
$destination="C:\tempcopy"
$logFolder="C:\logs"

# Autogen variables
$logFile="$logFolder\hobocopy-log-$(get-date -Format 'yyyy-MM-dd-hh-mm-ss').log"
$stateFile="$logFolder\hobocopy-statefile.log"
$hobocopyFullSwitches="/statefile=$stateFile /ignorepattern='System Volume Information|\$RECYCLE.BIN' /full /skipdenied /r /y"
$hobocopyIncrementalSwitches="/statefile=$stateFile /ignorepattern='System Volume Information|\$RECYCLE.BIN' /incremental /skipdenied /r /y"

# Include prerequisites
.{
if (!(get-command hobocopy)){
if (!(Get-Command choco.exe -ErrorAction SilentlyContinue)) {
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
}
choco install hobocopy -y;
}
}

if (test-path $stateFile){
$hobocopyCommand="hobocopy $source $destination $hobocopyIncrementalSwitches"
}else{
$hobocopyCommand="hobocopy $source $destination $hobocopyFullSwitches"
}
$output=invoke-expression $hobocopyCommand;

write-host $output
Add-Content $logFile $output;

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

PowerShell: Methods to Download Files

# Change these values to reflect your desired downloads$fileURL = "https://download.microsoft.com/download/0/d/9/0d9d81cf-4ef2-4aa5-8cea-95a935ee09c9/PortQryV2.exe"$output = "C:\WINDOWS\System32\SysInternals\portqry.exe"1. Start-BitsTransfer (my…

PowerShell: Take VM Snapshots

# takeVmSnapshot.ps1 $vmNames='Test-VM1','Cowabunga-VM4' $snapShotLabel="Snapshot $(get-date -Format yyyyMMddTHHmmss)" function takeVmSnapshot([string[]]$vmName,[string]$snapshotLabel){ $vmClusterNodes=Get-ClusterGroup|?{$_.GroupType -eq 'VirtualMachine'} foreach ($vm in…

Kubernetes: Cert-Manager x509 ECDSA verification failure

Symptoms Error from server (InternalError): error when creating "kimconnect-cert.yaml": Internal error occurred: failed calling webhook…
Other project: DragonCoin.com