четверг, 11 июля 2019 г.

pg_probackup скрипт

$ sudo  nano /root/fullbackup.sh

#!/bin/sh -e
#
email=f1@vu.com
sudo sh /root/terminate.sh
# vacuumdb
sudo systemctl stop srv1cv83.service
sudo -u postgres vacuumdb -afz > vacuumdb.txt
sudo systemctl start srv1cv83.service
DATA=`date +"%Y-%m-%d_%H-%M-%S"`
if [ $? -ne 0 ]
then
     echo "vacuumdb неудачное завершение" | mutt -s 'vacuumdb '$DATA' - неудачное завершение' $email -a vacuumdb.txt
else
     echo "vacuumdb удачное завершение" | mutt -s 'vacuumdb '$DATA' - удачное завершение' $email -a vacuumdb.txt
fi

# /backupwal
inst='/backupwal'
log=$inst'/log/pg_probackup.log'
if [ -f $log ]; then rm $log; fi
cd $inst
PGPASSWORD=password pg_probackup-10  backup -B $inst --instance main -U postgres -d postgres -h 127.0.0.1  -b FULL --stream --compress --expired --log-level-file=info

grep completed $log > /dev/null 2>&1
if [ $? -ne 0 ]
then
    msg="$inst неудачное завершение."
else
    msg="$inst удачное завершение."
fi
DATA=`date +"%Y-%m-%d %H:%M:%S"`
msg1="Размер экземпляра pg_probackup: $(du -h -s $inst)"
echo "$msg $msg1" | mutt -s "$msg $DATA" $email -a $log


# /backup/backup1
inst='/backup/backup1'
log=$inst'/log/pg_probackup.log'
if [ -f $log ]; then rm $log; fi
cd $inst
PGPASSWORD=password pg_probackup-10 backup -B $inst --instance main -U postgres -d postgres -h 127.0.0.1 -b FULL --stream --compress --expired --log-level-file=info

grep completed $log > /dev/null 2>&1
if [ $? -ne 0 ]
then
    msg="$inst неудачное завершение."
else
    msg="$inst удачное завершение."
fi
DATA=`date +"%Y-%m-%d %H:%M:%S"`
msg1="Размер экземпляра pg_probackup: $(du -h -s $inst)"
echo "$msg $msg1" | mutt -s "$msg $DATA" $email -a $log

# Сразу архивируем для rsync
COPY_DIR=$inst/copy
#Берем последнюю копию
COPY_ID=$(ls $inst/backups/main -1 | tail -1)
#Она должна быть completed
grep "$COPY_ID completed" $log > /dev/null 2>&1
if [ $? = 0 ]
then
    DATA=`date +"%Y-%m-%d_%H-%M-%S"`
    #rm  $inst/copy/*
    tar -cvzf $COPY_DIR/pg_pro-$DATA.tar.gz  \
           $inst/backups/main/$COPY_ID > /dev/null 2>&1
    if [ $? = 0 ]
    then
        DATA=`date +"%Y-%m-%d_%H-%M-%S"`
        msg="создан $COPY_DIR/pg_pro-$DATA.tar.gz"
    else
        msg="ошибка создания $COPY_DIR/pg_pro-$DATA.tar.gz"
    fi
    echo $msg | mutt -s "$msg" $email -a $log
fi

Сохранить.

Комментариев нет:

Отправить комментарий