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