Pré-requisitos:
libnotifypara exibir um balão de alerta quando o backup estiver em andamento (Não obrigatório).
Instale pelo console com
sudo apt-get install libnotify-binou clicando aqui caso esteja usando o firefox no ubuntu.postgresql-clientpara ter a ferramenta pg_dumpall que vamos usar no script (Obrigatório).
Instale pelo console com
sudo apt-get install postgresql-clientou clique aqui.
O Script:
#!/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
Salve esse arquivo como backuper.sh (ou o nome que achar melhor) e depois altere as suas permissões para execução.
chmod +x backuper.shAi é só executá-lo pelo prompt usando
./backuper.sh.No próximo post vou ensinar como fazer o script ser executado automáticamente e periodicamente.
Até mais.
Update
Dei uma tunada no script e agora ele faz clonagem de servidores Postgre
No terminal, execute os comandos:
wget http://dl.dropbox.com/u/4917466/pgclone
sudo mv pgclone /bin/pgclone
sudo chmod 777 /bin/pgclone
Agora quando for usar basta digitar no terminal um dos comandos abaixosudo mv pgclone /bin/pgclone
sudo chmod 777 /bin/pgclone
pgclone Faz uma cópia do servidor localhost com o usuário postgrespgclone -u usuario -h host Faz uma cópia do servidor "host" com o usuario "usuario"pgclone --clone --clone-user usuario --clone-host host Faz uma clonagem do servidor localhost no servidor "host"
Nenhum comentário:
Postar um comentário