Комментарии 22
В рамках гуманитарной помощи ;)
Скрипт для бекапа виртуалочек на все случаи жизни
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
#Optionally, you can change compression level and desired retention, disable VMware quiescence, enable encryption or even notification settings:
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools or Hyper-V Integration Components are required for this in the guest OS; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $False
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; by default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
#If you like to get an email report once the backup is completed, you should additionally fill out the following notification settings.
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
#Optionally, you can change compression level and desired retention, disable VMware quiescence, enable encryption or even notification settings:
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools or Hyper-V Integration Components are required for this in the guest OS; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $False
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; by default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
#If you like to get an email report once the backup is completed, you should additionally fill out the following notification settings.
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
Бонус - шифрование
$SecurePassword = Read-Host -Prompt «Enter password» -AsSecureString
$SecurePassword | ConvertFrom-SecureString > “Directory where secure string should be stored; C:\SecureString.txt, for instance”
#After that, specify the path to the newly-created file in the main script:
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = «C:\SecureString.txt»
$SecurePassword | ConvertFrom-SecureString > “Directory where secure string should be stored; C:\SecureString.txt, for instance”
#After that, specify the path to the newly-created file in the main script:
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = «C:\SecureString.txt»
А скрипт-то где? Это писание переменных, вышеуказанный код вообще ничего не делает.
мдё, недокопипастилось =)
для вары
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by semicolon (Mandatory)
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = ""
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRViEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq «EWarning» -or $_.Status -eq «EFailed»}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
# User Defined Variables
##################################################################
# Names of VMs to backup separated by semicolon (Mandatory)
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = ""
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRViEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq «EWarning» -or $_.Status -eq «EFailed»}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
Для HV
# Author: Vladimir Eremin
# Created Date: 3/24/2015
# forums.veeam.com/member31097.html
#
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = ""
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRHvEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq «EWarning» -or $_.Status -eq «EFailed»}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
# Created Date: 3/24/2015
# forums.veeam.com/member31097.html
#
##################################################################
# User Defined Variables
##################################################################
# Names of VMs to backup separated by comma (Mandatory). For instance, $VMNames = “VM1”,”VM2”
$VMNames = ""
# Name of vCenter or standalone host VMs to backup reside on (Mandatory)
$HostName = ""
# Directory that VM backups should go to (Mandatory; for instance, C:\Backup)
$Directory = ""
# Desired compression level (Optional; Possible values: 0 — None, 4 — Dedupe-friendly, 5 — Optimal, 6 — High, 9 — Extreme)
$CompressionLevel = «5»
# Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$EnableQuiescence = $True
# Protect resulting backup with encryption key (Optional; $True/$False)
$EnableEncryption = $True
# Encryption Key (Optional; path to a secure string)
$EncryptionKey = ""
# Retention settings (Optional; By default, VeeamZIP files are not removed and kept in the specified location for an indefinite period of time.
# Possible values: Never, Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)
$Retention = «Never»
##################################################################
# Notification Settings
##################################################################
# Enable notification (Optional)
$EnableNotification = $True
# Email SMTP server
$SMTPServer = ""
# Email FROM
$EmailFrom = ""
# Email TO
$EmailTo = ""
# Email subject
$EmailSubject = ""
##################################################################
# Email formatting
##################################################################
$style = ""
##################################################################
# End User Defined Variables
##################################################################
#################### DO NOT MODIFY PAST THIS LINE ################
Asnp VeeamPSSnapin
$Server = Get-VBRServer -name $HostName
$MesssagyBody = @()
foreach ($VMName in $VMNames)
{
$VM = Find-VBRHvEntity -Name $VMName -Server $Server
If ($EnableEncryption)
{
$EncryptionKey = Add-VBREncryptionKey -Password (cat $EncryptionKey | ConvertTo-SecureString)
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention -EncryptionKey $EncryptionKey
}
Else
{
$ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
}
If ($EnableNotification)
{
$TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
$FailedSessions = $TaskSessions | where {$_.status -eq «EWarning» -or $_.Status -eq «EFailed»}
if ($FailedSessions -ne $Null)
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={$FailedSessions.Title}})
}
Else
{
$MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n=«Name»;e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n=«Start Time»;e={$_.CreationTime}},@{n=«End Time»;e={$_.EndTime}},Result,@{n=«Details»;e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
}
}
}
If ($EnableNotification)
{
$Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
$Message.Subject = $EmailSubject
$Message.IsBodyHTML = $True
$message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
$SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
$SMTP.Send($Message)
}
Поясните пожалуйста как нужно применять этот скрипт (на какой машине, какие программы должны быть установлены для него). Для примера когда у меня есть несколько vm на vmware esxi 5.5 и Windows 7 PC (на котором если я правильно понимаю нужно запускать этот скрипт?) Спасибо.
Это скрипт для резервного копирования средствами Veeam Backup & Replication. Соответственно он должен запускаться машине с установленным VB&R.
… где должна быть установлена оснастка VeeamPSSnapin. Это необходимые и достаточные условия.
Я полагаю, что если вопрошающий задает вопрос, где запускать скрипт, то для начала надо поставить VB&R. :)
Так то я не спорил. Просто дополнил, для полноты картины.
Aaa :) А то я подумал (особенно после упоминания о гум. помощи) что скрипт применим к описываемому в статье бесплатному Veeam Endpoint Backup.
Поясните пожалуйста тогда в чем преимущество применения скрипта, если VB&R и сам умеет неплохо бэкапить VM-ы?
Поясните пожалуйста тогда в чем преимущество применения скрипта, если VB&R и сам умеет неплохо бэкапить VM-ы?
В том, что мы говорим про VB&R FREE. В нем либо руками через гуй запускать, либо использовать командлет Start-VBRZip.
фри версия не умеет бекапить по расписанию. скрипт можно запихнуть в планировщик и…
Спасибо друзья за терпеливые ответы, попробую поставить себе и поэкспериментировать с бесплатной версией и скриптами.
А чего у всех в скриптах указывают ВМ? Есть же таги и они офигительно удобны!
Только что заметил ваш комментарий, поясните на счет тегов для FREE версии.
Они там работают.
Один раз создаёте задание в планировщике, которое делает Start-VBRZip по тагу и забываете про него, а новым ВМ просто добавляете нужный таг.
Про это писали в блоге Veeam:
habrahabr.ru/company/veeam/blog/249071
Один раз создаёте задание в планировщике, которое делает Start-VBRZip по тагу и забываете про него, а новым ВМ просто добавляете нужный таг.
Про это писали в блоге Veeam:
habrahabr.ru/company/veeam/blog/249071
Расскажите, пожалуйста, подробнее про полный интерфейс:
> Включите полный интерфейс VB&R FREE и не выключайте его.
Допустим, я включил полный интерфейс VB&R FREE, настроил кучу всего… а он через 30 испытательных дней превратился в тыкву? Или этот полный интерфейс никогда не пропадает?
> Включите полный интерфейс VB&R FREE и не выключайте его.
Допустим, я включил полный интерфейс VB&R FREE, настроил кучу всего… а он через 30 испытательных дней превратился в тыкву? Или этот полный интерфейс никогда не пропадает?
Я не использовал триальный период вообще. Если вы настроили какие-то действия, которые требуют полой лицензии, но не работают в бесплатной, то естественно по окончании триала они работать не будут. Просто в полном интерфейсе есть некоторые дополнительные фишки, доступные в FREE версии, такие как управление репозиториями.
Да, управление репозиториями — штука хорошая. А репозитории точно не пропадают после истечения тестового периода?
А что ещё в полном интерфейсе продолжает работать после истечения тестового периода?
А что ещё в полном интерфейсе продолжает работать после истечения тестового периода?
Привет!
Может быть полезно: мы научили Veeam Endpoint Backup в последнем обновлением умеет запускать резервное копирование из командной строки.
Performing Backup with Command Line Interface
Может быть полезно: мы научили Veeam Endpoint Backup в последнем обновлением умеет запускать резервное копирование из командной строки.
Performing Backup with Command Line Interface
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как действительно использовать Veeam %ProductName% Free на полную катушку