Advertisement
Guest User

скриптик

a guest
Jul 4th, 2018
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.14 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #корневой каталог для бэкапов
  4. BACKUP_ROOT="/home/user"
  5.  
  6. #Создаём директорию  для бекапа с указанием даты
  7. mkdir $BACKUP_ROOT/`date +%F`
  8.  
  9. #Заперемениваем эту директорию
  10. BACKUP_DIR="$BACKUP_ROOT/`date +%F`"
  11.  
  12. #Указываем два разных массива для бекапа и для вакуума+реиндекса
  13. bb=(baseforbackup1 baseforbackup2 baseforvacreind1 baseforvacreind2)
  14. bvr=(baseforvacreind1 baseforvacreind2)
  15.  
  16. #Задаём функцию просто бекапа(без вакуума и реиндекса)
  17. function dump() {
  18. pg_dump -U postgres -Fc -Z9 -f  $BACKUP_DIR/$1.sql $1
  19. }
  20.  
  21. #функция вакуума
  22. function vacuum() {
  23. vacuumdb -U postgres -f -z -d $1
  24. }
  25.  
  26. #функция реиндекса
  27. function reindex() {
  28. reindexdb -U postgres $1
  29. }
  30.  
  31. #функция содержит цикл запускающий в фоне процессы бекапа для каждого элемента массива с базами бекапа
  32. function backup() {
  33. for base in ${bb[*]}
  34. do
  35.         dump $base &
  36. done
  37. }
  38.  
  39. #функция содержит цикл запускающий в фоне процессы вакуума для каждого элемента массива с базами вакуума и реиндекса
  40. function vac() {
  41. for baze in ${bvr[*]}
  42. do
  43.         vacuum $baze &
  44. done
  45. }
  46.  
  47. #функция содержит цикл запускающий в фоне процессы реиндексации для каждого элемента массива с базами вакуума и реиндекса
  48. function re() {
  49. for bas in ${bvr[*]}
  50. do
  51.         vacuum $bas &
  52. done
  53. }
  54.  
  55. #собственно сама команда бекапа, вакуума и реиндекса для ОДНОВРЕМЕННОГО бекапа всех баз и после ОДНОВРЕМЕННОГО вакуума+реиндекса только пары баз. Легко модифицируется добавлением баз в соответствующий массив.
  56. backup && vac && re
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement