exemplo no crontab diariamente as 23:50
50 23 * * * /scripts/backup_pgsql.sh
#!/bin/sh
# Script to backup postgres databases
# Create a complete bkp with all databses and a separated for each one
# Author: Mario Cezzare mcezzare@gmail.com
# last update on Wed Dec 29 16:24:11 on ttys005
PGDUMPALL="$(which pg_dumpall)"
PSQL="$(which psql)"
GZIP="$(which gzip)"
x=`date '+BACKUP-%d.%m.%y'`
separator="-----------------------------------"
path_backup=/backup/pgsql/
notify="sysadmin@email.com.br"
cd $path_backup
mkdir $x
path_backup="$path_backup/$x"
echo $x
now=`date '+%d.%m.%y %H:%M:%S'`
##################################################################################
# PART 1 - LOGS
##################################################################################
echo " starting at $x $now" >> $path_backup/pgsql-databases-$x.log
##################################################################################
# PART 2 - ALL DATAL
##################################################################################
$PGDUMPALL -U postgres | $GZIP -c > $path_backup/$x-all-pg.pgsql.gz
##################################################################################
# PART 3 - EACH ONE
##################################################################################
DIR=$path_backup
[ ! $DIR ] && mkdir -p $DIR || :
LIST=$($PSQL -U postgres -l | awk '{ print $1}' | grep -vE '^-|^List|^\(|^Name|template[0|1]')
for d in $LIST
do
echo "Dumping $d"
pg_dump -U postgres $d | $GZIP -c > $DIR/$d.pgsql.gz
now=`date '+%d.%m.%y %H:%M:%S'`
echo "$d em $now" >> $path_backup/pgsql-databases-$x.log
done
##################################################################################
# PART 1B - END LOGS
##################################################################################
echo " ending at $x $now" >> $path_backup/pgsql-databases-$x.log
##################################################################################
# PART 4 - NOTIFICATIONS
##################################################################################
ls -aloh $path_backup | mail -s BACKUP_POSTGRES_DATABASES $notify
Nenhum comentário:
Postar um comentário