###################################################### ### БЕКАПИРОВАНИЕ SQL БАЗЫ ################# v.1.0 ### ###################################################### ### Передоваемые параметры ########################### param ( [string]$mod = "", #Если бекап полный тогда full, если только транкзакции то trans [string]$server = "", #SQL Server [string]$base = "", #База данных [string]$target = "", #Путь относительно SQL Server, должны быть права на запись для машины на котором крутится SQL [string]$catalog = "" #Путь к каталогу базы 1С ) ### Настройки почты ################################## $mail_server = 'serv7.neva.press' $mail_subject = 'Резервное копирование базы данных 1С: ' $mail_from = 'auto@neva-press.com' $mail_to = 'krikun@neva-press.com', 'p.kuznetsov@neva-press.com' $mail_msg = '' ###################################################### Set-Alias -name SevenZip -value “C:\Program Files\7-Zip\7z.exe” if ($mod -eq "full") { $backup_date = Get-Date -Format yyyy.MM.dd $backup_file_path = $target + $backup_date + "." + $base + "." + $mod + ".bak" $backup_file_zip = $target + $backup_date + "." + $base + "." + $mod + ".bak.zip" $backup_catalog_zip = $target + $backup_date + "." + $base + ".catalog.zip" $backup_file_zip_log = $target + $backup_date + "." + $base + "." + $mod + ".bak.zip.log" $backup_catalog_zip_log = $target + $backup_date + "." + $base + ".catalog.zip.log" $Query = "BACKUP DATABASE [$base] TO DISK = N'$backup_file_path' WITH NOFORMAT, INIT, NAME = N'Автоматическая полная резервная копия $base', SKIP, NOREWIND, NOUNLOAD, STATS = 10" } elseif ($mod -eq "trans") { $backup_date = Get-Date -Format yyyy.MM.dd_HH.mm $backup_file_path = $target + $backup_date + "." + $base + "." + $mod + ".bak" $backup_file_zip = $target + $backup_date + "." + $base + "." + $mod + ".bak.zip" $backup_file_zip_log = $target + $backup_date + "." + $base + "." + $mod + ".bak.zip.log" $Query = "BACKUP LOG [$base] TO DISK = N'$backup_file_path' WITH NOFORMAT, INIT, NAME = N'Автоматическая резервная копия транзакций базы $base', SKIP, NOREWIND, NOUNLOAD, STATS = 10" } #Создание бекапа SQL $SQLConnection = New-Object System.Data.SqlClient.SqlConnection("Initial Catalog=$base;Data Source=$server;Integrated Security=SSPI;") $SQLConnection.Open() $SQLCommand = New-Object System.Data.SqlClient.SqlCommand($Query, $SQLConnection) $SQLCommand.CommandTimeout = 0 $SQLCommand.ExecuteNonQuery() $SQLConnection.Close() #Упаковка бекапа в ZIP SevenZip a -tzip $backup_file_zip $backup_file_path | Out-File $backup_file_zip_log #Удаление файла бекапа Remove-Item $backup_file_path -Force #Упаковка каталога в ZIP if ($mod -eq "full") { SevenZip a -tzip $backup_catalog_zip $catalog | Out-File $backup_catalog_zip_log }