Script Reindex PostgreSQL com envio de email de notificação
Dica publicada em Banco de Dados / Postgres
Script Reindex PostgreSQL com envio de email de notificação
Pessoal em bancos de dados que ha muitos inserts é sempre bom fazer um reindex no banco com direito a envio de email, com isso criei um script para agilizar o processo, principalmente se for mais de um banco como no meu caso.
# nano reindex_pg.sh
Cole o seguinte conteúdo:
Salve, e mude o arquivo para executável:
# chmod +x reindex_pg.sh
Pode-se ainda agendá-lo para execução automática, adicionando no contrab. Exemplo:
# nano /etc/crontab
Cole a linha:
00 22 * * * root /diretorio_script/script/reindex_pg.sh
Obs.: Para ser enviado o email o ssmtp tem que estar devidamente configurado, aqui no site tem vários tópicos sobre o assunto.
# nano reindex_pg.sh
Cole o seguinte conteúdo:
#!/bin/bash
script_dir="/diretorio_script/script/"
echo " " > $script_dir/reindex.log
echo "Subject: Reindex" > $script_dir/reindex.log
echo "From: Servidor Banco de dados" >> $script_dir/reindex.log
echo "" >> $script_dir/reindex.log
echo "`date` - Fazendo reindex do servidor..." >> $script_dir/reindex.log
LISTA_BANCO="banco1 banco2 banco3"
for banco in $LISTA_BANCO
do
su - postgres -c "reindexdb -U postgres -w -d $banco"
touch reindex-$banco\ -\ `date +%H:%M`
done
ls -tr reindex-* >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
ssmtp voce@exemplo.com.br < $script_dir/reindex.log
rm -f reindex-*
script_dir="/diretorio_script/script/"
echo " " > $script_dir/reindex.log
echo "Subject: Reindex" > $script_dir/reindex.log
echo "From: Servidor Banco de dados
echo "" >> $script_dir/reindex.log
echo "`date` - Fazendo reindex do servidor..." >> $script_dir/reindex.log
LISTA_BANCO="banco1 banco2 banco3"
for banco in $LISTA_BANCO
do
su - postgres -c "reindexdb -U postgres -w -d $banco"
touch reindex-$banco\ -\ `date +%H:%M`
done
ls -tr reindex-* >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
ssmtp voce@exemplo.com.br < $script_dir/reindex.log
rm -f reindex-*
Salve, e mude o arquivo para executável:
# chmod +x reindex_pg.sh
Pode-se ainda agendá-lo para execução automática, adicionando no contrab. Exemplo:
# nano /etc/crontab
Cole a linha:
00 22 * * * root /diretorio_script/script/reindex_pg.sh
Obs.: Para ser enviado o email o ssmtp tem que estar devidamente configurado, aqui no site tem vários tópicos sobre o assunto.
----------------------------
#!/bin/bash
script_dir="/diretorio_script/script/"
echo " " > $script_dir/reindex.log
echo "Subject: Reindex" > $script_dir/reindex.log
echo "From: Servidor Banco de dados " >> $script_dir/reindex.log
echo "" >> $script_dir/reindex.log
echo "`date` - Fazendo reindex do servidor..." >> $script_dir/reindex.log
LISTA_BANCO="`psql -t -c "select datname from pg_database"`"
for banco in $LISTA_BANCO
do
`reindexdb -U postgres -w -d $banco`
touch reindex-$banco\ -\ `date +%H:%M:%S`
done
ls -tr reindex-* >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
echo " " >> $script_dir/reindex.log
ssmtp voce@exemplo.com.br < $script_dir/reindex.log
rm -f reindex-*