-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathpgtest
executable file
·73 lines (52 loc) · 2.42 KB
/
pgtest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
#### variaveis/constantes ###########################################################
BDIR="/path/diretorio/pgsqldump"
DBLIST="$BDIR/pglist.txt"
BE="postgres|template1|template0|\?" # bancos que nao vao entrar no backup
PG_DUMP=$(which pg_dump) # caminho para comando pgsqldump
PSQL=$(which psql) # caminho para o comando pgdump
MAILX=$(which mail) # caminho para comando mail
SEND_ERROR_MAIL="YES" # envia email com relatorio de erros nos dumps YES/NO
ERROR_MAIL="[email protected]" # email para receber relatorios de erro
### verificando se voce é o usuario root ###################################
if [ $(id -u) != "0" ];then
echo -e "\nErro: este script precisa ser executado com usuario root..."
echo -e "Ajuda: torne-se root, use o comando (su -) ou (sudo -i).\n"
exit 1
fi
### verifica se as ferramentas do pgsql estao instalados ####################################
if [ ! -x $PG_DUMP ];then
echo -e "\nErro: Este script não conseguiu encontrar o comando pg_dump"
echo -e "Ajuda: Corrija o caminho na variavel PG_DUMP\n"
exit 1
fi
if [ ! -x $PSQL ];then
echo -e "\nErro: Este script não conseguiu encontrar o comando psql"
echo -e "Ajuda: Corrija o caminho na variavel PGSQL\n"
exit 1
fi
### verificando se existe o arquivo com a lista de sgbds #############################
if [ ! -f $DBLIST ]; then
echo -e "\nErro: o arquivo com a lista de sgbds nao existe!"
echo -e "Ajuda: ajuste o conteudo da variavel DBLIST\n"
exit 1
fi
### funcao de backup ##########################################################
function teste()
{
echo "Buscando informacoes de conexao nos sgbd's no arquivo $DBLIST ..."
# pegando infos no arquivo com lista de bancos
for DB in `cat $DBLIST |grep -v ^#|grep -v ^$`;do
HOST=`echo $DB | cut -d: -f1`
USER=`echo $DB | cut -d: -f2`
PASS=`echo $DB | cut -d: -f3`
NAME=`echo $DB | cut -d: -f4`
# exportando senha do postgres
export PGPASSWORD=$PASS
# laco para buscar info de bancos
for DBBKP in $($PSQL --username=$USER -h $HOST -l -t -A | cut -d\| -f1 | grep -v = |egrep -v $BE); do
echo -e "\nservidor [ $HOST ] hostname [ $NAME ] banco [ $DBBKP ] acesso com usuario [ $USER ] \n"
done
done
}
teste