From b294b4530a4ba4a3e9e54c80ac1b14399c183926 Mon Sep 17 00:00:00 2001 From: zwnk Date: Thu, 29 Nov 2018 19:34:44 +0100 Subject: [PATCH] Update 'all' --- all | 49 +++++++++++++++++-------------------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/all b/all index 123ed84..e1fdf9d 100644 --- a/all +++ b/all @@ -10,18 +10,8 @@ $Env:Path = "c:\Program Files\Oracle\VirtualBox\" # creating backup paths $remoteBackupPath = "\\freenas\programas\VM_Backup" $backupDriveLetterMount = "L" -$backupFilename = " -o " + $backupDriveLetterMount + ":\" + [string](Get-Date).Year + [string](Get-Date).Month + [string](Get-Date).Day + "_Intranet_Backup.ova" +$backupFilename = $backupDriveLetterMount + ":\" + [string](Get-Date).Year + [string](Get-Date).Month + [string](Get-Date).Day + "_Intranet_Backup.ova" $vmName = "2018_intranet" -# 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-PSDrive -Name L -Root \\freenas\programas\VM_Backup\ -Persist -PSProvider FileSystem New-PSDrive -Name $backupDriveLetterMount -Root $remoteBackupPath -Persist -PSProvider FileSystem @@ -29,7 +19,7 @@ New-PSDrive -Name $backupDriveLetterMount -Root $remoteBackupPath -Persist -PSPr # stoping vm $vmanagerStopVM = "VBoxManage.exe" $vmanagerStopVM += @(" controlvm ") -$vmanagerStopVM += @(@vmName) +$vmanagerStopVM += @($vmName) $vmanagerStopVM += @(" poweroff") Write-host "$vmanagerStopVM" Invoke-Expression "$vmanagerStopVM" @@ -39,15 +29,11 @@ $vmanagerBackup = "VBoxManage.exe" $vmanagerBackup += @(" export ") $vmanagerBackup += @($vmName) $vmanagerBackup += @(" --ovf10") -$vmanagerBackup += @([string]$backupFilename) +$vmanagerBackup += @(" -o ") +$vmanagerBackup += @([string]$backupFilename) Write-host "$vmanagerBackup" Invoke-Expression "$vmanagerBackup" -# remove old Backups -$backupFileCount = ( Get-ChildItem -Filter *.ova $remoteBackupPath | Measure-Object ).Count -$limitDate = (get-date).AddDays(-12).ToString("yyyMMdd") -$backupPath = $backupDriveLetterMount + ":\" - # start vm $vmanagerStart = "VBoxManage.exe" $vmanagerStart += @(" startvm ") @@ -56,19 +42,18 @@ $vmanagerStart += @(" -type headless") Write-host "$vmanagerStart" Invoke-Expression "$vmanagerStart" -#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 -# } -# } -# } +# remove old Backups +$backupFileCount = ( Get-ChildItem -Filter *.ova $remoteBackupPath | Measure-Object ).Count +$backupPath = $backupDriveLetterMount + ":\" + +DO +{ + $Item = Get-ChildItem -Path $remoteBackupPath -Filter *.ova | Sort CreationTime | select -First 1 + Write-Host "Oldest file/folder in $FolderName is $($Item.FullName)" + Remove-Item -Path $($Item.FullName) -Force + $backupFileCount = ( Get-ChildItem -Filter *.ova $remoteBackupPath | Measure-Object ).Count + +} While ($backupFileCount -gt 3) # removing backup path -Remove-PSDrive -Name $backupDriveLetterMount \ No newline at end of file +Remove-PSDrive -Name $backupDriveLetterMount