Xyberviri

SqlExpressBackupToS3.ps1

Jun 15th, 2018
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #SqlServerInstance
  2. $sqlServerInstance = '<servername>\SQLEXPRESS'
  3. $databases = @("Master","<databasename>")
  4. #S3
  5. $s3Bucket = '<s3bucketname>'
  6. $region = 'us-east-1'
  7. #Backup Settings
  8. $backupPath = 'C:\temp\sqlbackups'
  9. $timestamp = get-date -format yyyyMMddHHmmss
  10. $zipFile = 'C:\temp\sqlbackups-'+$timestamp+'.zip'
  11. $s3fileName = '<servername/databasename/whatever>/sqlbackups-'+$timestamp+'.zip'
  12.  
  13.  
  14. foreach ($database in $databases) {
  15.     Backup-SqlDatabase -Database $database -ServerInstance $sqlServerInstance -BackupFile (Join-Path $backupPath "$database-$timestamp.bak" )
  16. }
  17.  
  18. if((Get-ChildItem $backupPath -force | Select-Object -First 1 | Measure-Object).Count -gt 0)
  19. {
  20.     Write-Host "backups found"
  21.     Add-Type -assembly "system.io.compression.filesystem"
  22.     [io.compression.zipfile]::CreateFromDirectory($backupPath, $zipFile)
  23.     Write-S3Object -BucketName $s3Bucket -File $zipFile -Key $s3fileName -Region $region #-ServerSideEncryption AES256
  24.     Remove-Item "$backupPath\*" -Confirm:$false -Force -Recurse
  25.     Remove-Item $zipFile -Confirm:$false -Force
  26. } else {
  27. write-host "no backups found"
  28. }
Advertisement
Add Comment
Please, Sign In to add comment