Advertisement
Guest User

BackupFirebird.ps1

a guest
Sep 13th, 2017
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ########################################################
  2. # Name: BackupFirebird.ps1                              
  3. # Criador: Tácio Andrade
  4. # Criado: 07.08.2017                              
  5. # Modificado: 07.08.2017                              
  6. # Versão: 1.0
  7. # Descrição: Script de backup dos bancos do Firebird
  8. ########################################################
  9.  
  10. # Variaveis do usuario e senha do firebird
  11. $FIREBIRD="C:\Program Files\Firebird\Firebird_2_5\bin\"
  12. $USER="SYSDBA"
  13. $PASSWORD="masterkey"
  14. $7Z="C:\Program Files\7-Zip"
  15. # Variaveis de arquivos
  16. $LOG="D:\BackupFirebird.log"
  17. $BANCOS="D:\sgbd\"
  18. $BACKUP="D:\backup\"+ (Get-Date -format dd) + "\"
  19. # Variaveis cloud
  20. $MEGA="C:\Program Files\megatools"
  21. $MEGADIR="/Root/backup/"+ (Get-Date -format dd)
  22. # Variaveis email
  23. $MAILUSER= "email@yahoo.com"
  24. $MAILPASS= "senha"
  25.  
  26. rm $LOG
  27.  
  28. # Inicia o backup
  29. $TEXTO="Backup iniciado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  30. add-Content -Path $LOG -Value $TEXTO
  31.  
  32. # Remove backup antigo
  33. rm $BACKUP*
  34.  
  35. # Executa o backup dos bancos
  36. cd $FIREBIRD
  37. #$dir = Get-ChildItem -path $BANCOS
  38. foreach ($i in get-content D:\bancos.txt) {
  39.     $TEXTO="Backup do banco $i iniciado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  40.     add-Content -Path $LOG -Value $TEXTO
  41.     # Otimiza a base de dados
  42.     .\gfix -sweep -user $USER -password $PASSWORD $BANCOS$i
  43.     # Corrige os erros da base de dados se existirem
  44.     #.\gfix -mend -full -user $USER -password $PASSWORD $BANCOS$i
  45.     # Faz o backup da base
  46.     .\gbak.exe -b -v -user $USER -pas $PASSWORD -se localhost/3050:service_mgr $BANCOS$i "$BACKUP/$i.GBK"
  47.     $TEXTO="Backup do banco $i finalizado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  48.     add-Content -Path $LOG -Value $TEXTO
  49. }
  50.  
  51. # Executa a compressão dos bancos
  52. cd $7Z
  53. $dir = Get-ChildItem -path $BACKUP
  54. foreach ($i in $dir) {
  55.     $TEXTO="Compressão do banco $i iniciado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  56.     add-Content -Path $LOG -Value $TEXTO
  57.     .\7z.exe a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $BACKUP$i.7z $BACKUP$i
  58.     $TEXTO="Compressão do banco $i finalizado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  59.     add-Content -Path $LOG -Value $TEXTO
  60. }
  61.  
  62. # Remove os arquivos de backup
  63. rm $BACKUP*GBK
  64.  
  65. # Envia o backup pra nuvem
  66. cd $MEGA
  67. # Remove arquivos antigos do mega
  68. .\megarm.exe $MEGADIR
  69. $TEXTO="Inicia envio dos bancos $i para o Mega as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  70. add-Content -Path $LOG -Value $TEXTO
  71. .\megamkdir.exe $MEGADIR
  72. .\megacopy.exe  --no-progress --local $BACKUP --remote $MEGADIR
  73.  
  74. $TEXTO="Finaliza envio dos bancos $i para o Mega as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  75. add-Content -Path $LOG -Value $TEXTO
  76.  
  77. # Listar os backups
  78. Get-ChildItem -path $BACKUP | select Name,@{Name='Tamanho'; Expression= {$_.Length / 1mb}} >> $LOG
  79.  
  80. # Finaliza o backup
  81. $TEXTO="Backup finalizado as "+ (Get-Date -format dd.MM.yyyy-HH:mm:ss)
  82. add-Content -Path $LOG -Value $TEXTO
  83.  
  84. function Send-ToEmail([string]$email, [string]$attachmentpath){
  85.  
  86.     $message = new-object Net.Mail.MailMessage;
  87.     $message.From = "email@yahoo.com";
  88.     $message.To.Add($email);
  89.     $message.Subject = "Backup Bancos CPC - Andro";
  90.     $message.Body = "Segue o log do Backup";
  91.     $attachment = New-Object Net.Mail.Attachment($attachmentpath);
  92.     $message.Attachments.Add($attachment);
  93.  
  94.     $smtp = new-object Net.Mail.SmtpClient("smtp.mail.yahoo.com", "587");
  95.     $smtp.EnableSSL = $true;
  96.     $smtp.Credentials = New-Object System.Net.NetworkCredential($MAILUSER, $MAILPASS);
  97.     $smtp.send($message);
  98.     write-host "Mail Sent" ;
  99.     $attachment.Dispose();
  100. }
  101. Send-ToEmail  -email "email@gmail.com" -attachmentpath $LOG;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement