Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #корневой каталог для бэкапов
- BACKUP_ROOT="/home/user"
- #Создаём директорию для бекапа с указанием даты
- mkdir $BACKUP_ROOT/`date +%F`
- #Заперемениваем эту директорию
- BACKUP_DIR="$BACKUP_ROOT/`date +%F`"
- #Указываем два разных массива для бекапа и для вакуума+реиндекса
- bb=(baseforbackup1 baseforbackup2 baseforvacreind1 baseforvacreind2)
- bvr=(baseforvacreind1 baseforvacreind2)
- #Задаём функцию просто бекапа(без вакуума и реиндекса)
- function dump() {
- pg_dump -U postgres -Fc -Z9 -f $BACKUP_DIR/$1.sql $1
- }
- #функция вакуума
- function vacuum() {
- vacuumdb -U postgres -f -z -d $1
- }
- #функция реиндекса
- function reindex() {
- reindexdb -U postgres $1
- }
- #функция содержит цикл запускающий в фоне процессы бекапа для каждого элемента массива с базами бекапа
- function backup() {
- for base in ${bb[*]}
- do
- dump $base &
- done
- }
- #функция содержит цикл запускающий в фоне процессы вакуума для каждого элемента массива с базами вакуума и реиндекса
- function vac() {
- for baze in ${bvr[*]}
- do
- vacuum $baze &
- done
- }
- #функция содержит цикл запускающий в фоне процессы реиндексации для каждого элемента массива с базами вакуума и реиндекса
- function re() {
- for bas in ${bvr[*]}
- do
- vacuum $bas &
- done
- }
- #собственно сама команда бекапа, вакуума и реиндекса для ОДНОВРЕМЕННОГО бекапа всех баз и после ОДНОВРЕМЕННОГО вакуума+реиндекса только пары баз. Легко модифицируется добавлением баз в соответствующий массив.
- backup && vac && re
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement