diff --git a/all b/all new file mode 100644 index 0000000..590d761 --- /dev/null +++ b/all @@ -0,0 +1,53 @@ +############################# +# +# Backup Intranet +# +############################# + +# Setting path for vboxmanage +$virtualBoxPath = "c:\Program Files\Oracle\VirtualBox" + +# creating backup paths +$remoteBackupPath = "\\freenas\programas\VM_Backup\" +$backupDriveLetterMount = "L:" +$backupFilename = $backupDriveLetterMount + "\" + [string](Get-Date).Year + [string](Get-Date).Month + [string](Get-Date).Day + "_Intranet_Backup.ova" + +# setting path var to VirtualBox folder +$Reg = "Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment" +$regex = "[cC]\:\\Program Files\\Oracle\\VirtualBox" +$OldPath = (Get-ItemProperty -Path "$Reg" -Name PATH).Path + +# check if PATH is already set +if ( -Not ($OldPath -match $regex)){ + Write-host "`nSetting Path Variable to $AddedLocation" + Set-ItemProperty -Path "$Reg" -Name PATH -Value $virtualBoxPath +} + +# mounting backup path +New-SmbMapping -LocalPath "$backupDriveLetterMount" -RemotePath "$remoteBackupPath" + +# backing up vm +vboxmanage controlvm poweroff +vboxmanage export -oovf10 -o "$backupFilename" + +# remove old Backups +$backupFileCount = ( Get-ChildItem -Filter *.ova $remoteBackupPath | Measure-Object ).Count +$limitDate = (get-date).AddDays(-12).ToString("yyyMMdd") +$backupPath = $backupDriveLetterMount + "\" + +if ($backupFileCount -gt 3) { + Get-ChildItem $backupPath | + ForEach-Object { + # get actual + $lasWriteTime = (Get-Content $_.LastWriteTime).ToString("yyMMdd") + + # delete backup files older than 12 days + if ($lasWriteTime -lt limitDate ) { + $fileNameFull = Get-Content $_.FullName + Remove-Item –path $fileNameFull + } + } +} + +# removing backup path +Remove-SmbMapping -RemotePath "$remoteBackupPath" -Force