Bases De Datos: script para backup de postgres
#!/bin/bash ######## Bash script para hacer mantenimiento y backup de bases de datos especificas ######## dbdump="/usr/bin/pg_dump"; dbridx="/usr/bin/reindexdb"; dbvacm="/usr/bin/vacuumdb"; dbdump="/usr/bin/pg_dump"; mkdirc="/bin/mkdir"; dbserv="127.0.0.1"; dbport="5432"; export PGUSER="usuariodepostgre"; export PGPASSWORD="contrasenha"; dbcnxn="-h "$dbserv" -p "$dbport" -U "$PGUSER" "; # Datos de conexion diahoy=`eval date "+%d"`; rtdirc="/var/lib/pgsql/8.4/backups"; # Directorio de backups dblist=( DB1 DB2 DBx ); function f_date (){ dirdat=`eval date +%Y%m%d`; dirdte=`eval date +%Y%m%d_%H%M%S`; } f_date; bkdir=$rtdirc"/bkp120-"$dirdat; # Direccion absoluta directorio bkdiw="bkp120-"$dirdat; if [ ! -d $bkdir ]; then echo "Creando directorio: "$bkdir" "; $mkdirc -p $bkdir fi function f_loops () { dbsc=0; dbst=${#dblist[@]}; while [ "$dbsc" -lt "$dbst" ]; do dbsp=${dblist[$dbsc]}; dbspf=""$bkdir"/"$dbsp""; # Prefijo (dir+nom+fecha) nombre de archivo dbspw=""$bkdiw"/"$dbsp""; # Prefijo (dir+nom+fecha) nombre de archivo case $1 in "reindex" ) f_date; echo "$PGPASSWORD" | $dbridx" "$dbcnxn" -d "$dbsp" -e > "$dbspf"-"$dirdte"-reindexdb.log" ;; "vacuum" ) f_date; echo "$PGPASSWORD" | $dbvacm $dbcnxn -f -v -d $dbsp > $dbspf"-"$dirdte"-vacuumdb.log" ;; "backup" ) f_date; echo "$PGPASSWORD" | $dbdump -i $dbcnxn -F c -b -v -f $dbspf"-"$dirdte".backup" $dbsp > $dbspf"-"$dirdte"-backup.log" ;; esac echo "###################################################"; echo $exc; $exc; dbsc=`expr $dbsc + 1`; done # dbsp=${dblist[$dbsc]}; # echo ""$dbsp; # echo "" } f_loops "backup"; f_loops "reindex"; f_loops "vacuum"; echo "###################################################"; echo "###################################################"; echo ""; /etc/init.d/postgresql-8.4 restart
page revision: 2, last edited: 22 Jan 2014 21:17