Recentemente passei por maus bocados depois que um servidor passou por problemas no sistema de arquivos que causaram perca de dados recentes, depois disso resolvi usar uma ferramenta que criasse uma cópia do servidor inteiro, para recuperá-lo caso seja necessário.<br />
<h2>Pré-requisitos:</h2><ul><li><code><b>libnotify</b></code> para exibir um balão de alerta quando o backup estiver em andamento (Não obrigatório).<br />
<p>Instale pelo console com <code>sudo apt-get install libnotify-bin</code> ou clicando <a title="clique para instalar pelo apt-url">aqui</a> caso esteja usando o firefox no ubuntu.</p></li>
<li><code><b>postgresql-client</b></code> para ter a ferramenta pg_dumpall que vamos usar no script (Obrigatório).<br />
<p>Instale pelo console com <code>sudo apt-get install postgresql-client</code> ou clique <a title="clique para instalar pelo apt-url">aqui</a>.</p></li>
</ul><h2>O Script:</h2><div class="code"><pre>#!/bin/sh
pgu="postgres" #O usuário do banco de dados
pgh="localhost" #O endereço do servidor
destin="/home/usuario/backup/" #O local onde será feito o backup
vYear=$(date +%Y) #O Ano
vMonth=$(date +%m) #O Mês
vDay=$(date +%d) #O Dia
vH=$(date +%H) #A Hora
vM=$(date +%M) #O minuto
fileName="auto-$pgh-$vDay.$vMonth.$vYear.$vH.$vM.backup" #O nome do arquivo do backup
fileError="auto-$pgh-$vDay.$vMonth.$vYear.$vH.$vM.error" #O nome do arquivo do backup
icon="/usr/share/icons/gnome/scalable/actions/gtk-refresh.svg" #O icone da notificação
startMsg="Está sendo efetuado um backup do servidor $pgh para o arquivo $destin$fileName!" #Mensagem de inicio
endMsgSuccess="O backup do servidor $pgh para o arquivo $destin$fileName foi efetuado com sucesso!" #Mensagem de término com sucesso
endMsgFail="Houve uma falha no backup do servidor $pgh para o arquivo $destin$fileName." #Mensagem de término com falha
#Iniciando...
echo $startMsg
if [ $(which notify-send) ]; then
notify-send "Backup Postgre" "$startMsg" -i $icon
fi
#Copiando...
pg_dumpall -U $pgu -h $pgh > $destin$fileName 2>$destin$fileError
s=$?
if [ $s != 0 ]; then
echo $endMsgFail
if [ $(which notify-send) ]; then
notify-send "Backup Postgre" "$endMsgFail" -i $icon
fi
error=$(cat $destin$fileError)
zenity --error --window-icon="$icon" --title="Backup Postgre" --text="$endMsgFail\nDetalhes:\n$error"
exit 1;
else
echo $endMsgSuccess
if [ $(which notify-send) ]; then
notify-send "Backup Postgre" "$endMsgSuccess" -i $icon
fi
zenity --notification --window-icon="$icon" --title="Backup Postgre" --text="$endMsgSuccess"
exit 0;
fi
</pre></div><br />
Salve esse arquivo como backuper.sh (ou o nome que achar melhor) e depois altere as suas permissões para execução.<br />
<code>chmod +x backuper.sh</code><br />
Ai é só executá-lo pelo prompt usando <code>./backuper.sh</code>.<br />
<br />
No próximo post vou ensinar como fazer o script ser executado automáticamente e periodicamente.<br />
<br />
Até mais.<br />
<br />
<b>Update</b><br />
<br />
Dei uma tunada no script e agora ele faz clonagem de servidores Postgre<br />
No terminal, execute os comandos:<br />
<div class="code">wget http://dl.dropbox.com/u/4917466/pgclone<br />
sudo mv pgclone /bin/pgclone<br />
sudo chmod 777 /bin/pgclone<br />
</div>Agora quando for usar basta digitar no terminal um dos comandos abaixo<br />
<code>pgclone</code> <cite>Faz uma cópia do servidor localhost com o usuário postgres</cite><br />
<code>pgclone -u usuario -h host</code> <cite>Faz uma cópia do servidor "host" com o usuario "usuario"</cite><br />
<code>pgclone --clone --clone-user usuario --clone-host host</code> <cite>Faz uma clonagem do servidor localhost no servidor "host"</cite><img src="http://feeds.feedburner.com/~r/Folksilva/~4/uBkQlcHI3zE" height="1" width="1" />
Estudos de Linux - Backup de bases de dados Postgre
12 de Abril de 2010, 0:00 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 194 vezes
0sem comentários ainda