Estude o material abaixo, espero que seja util.
##--------------------------------------------
##--------------------------------------------
#! /bin/bash

# Nome do servidor
SERVER=banana.xxxxx-gg.net

# diretorio para colocar os backups
BACKDIR=/dados/seulocal

# formato da data utilizado no nome do arquivo
#DATE=`date +'%m-%d-%Y'`
DATE=`date +'%d-%m-%Y'`
#DATE=`date +'%H-%M-%S-%d-%m-%Y'`

#----------------------PgSql--------------------#

# local onde está o servidor pgsql
HOST=localhost

# usuario para o servidor pgsql
USER=postgre

# Password do usuario
PASS=bananamole

# listagem dos databases para backup, separados por espaco
DBS="banco0 banco1"

# Coloque "y" para realizar backup de todas databases.
# sobrescreve a opcao anterior
DUMPALL=n


#----------------------FTP--------------------#

# coloque "y" para enviar os backups via FTP
FTP=y

FTPHOST="10.239.99.7"
FTPUSER="ftppguser"
FTPPASS="ftppgsenha"

# diretorio para fazer o backup no servidor ftp
FTPDIR="pgsql"

#-------------------Config de delecao-------------------#

# apagar arquivos antigos
DELETE=y

# manter quantos dias de backup?
DAYS=9

#----------------------Fim das configs------------------#


# verifica se o diretorio existe, caso não, cria.

if  [ -e $BACKDIR ]
then
echo Diretorio de backup ja existe
else
mkdir $BACKDIR
fi

if  [ $DUMPALL = "y" ]
then
echo "Criando a lista das databases...  NOOOOT"

#mysql -h $HOST --user=$USER --password=$PASS -e "show databases;" >
dbs_on_$SERVER.txt
# redefine a lista de databases para backup
#DBS=`sed -e ':a;N;$!ba;s/\n/ /g' -e 's/Database //g' dbs_on_$SERVER.txt`
fi

echo "Realizando o backup das databases..."
for database in $DBS
do

/opt/pgsql/bin/pg_dump -U $USER -F p -v -f
$BACKDIR/$SERVER-pgsql-noite-$database-$DATE.sql $database
gzip -f -9 $BACKDIR/$SERVER-pgsql-noite-$database-$DATE.sql

done


if  [ $FTP = "y" ]
then
echo "Iniciando da conexao FTP..."
cd $BACKDIR
ATTACH=`for file in *$DATE.sql.gz; do echo -n -e "put ${file}\n"; done`

ftp -nv <<EOF
open $FTPHOST
user $FTPUSER $FTPPASS
cd $FTPDIR
$ATTACH
quit
EOF

echo -e  "Tranferencia via FTP completa! \n"
fi

if  [ $DELETE = "y" ]
then
find $BACKDIR -name "*.sql.gz" -mtime $DAYS -exec rm {} \;

if  [ $DAYS = "1" ]
then
echo "Backup de ontem apagado."
else
echo "O backup de $DAYS dias atras foi apagado."
fi
fi

echo Backup completo!


2009/4/14 Ralf Schlindwein <[email protected]>

> alguem ja fez backup da base de dados postgresql e jogou em um FTP, e tem
> algum script ja pronto em linux??
>
>
> Sds
>
> Ralf
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a