CGIFCH: remplacer par le nom de votre base de données
UpdateBD : folder ou vous sauvegarder
SAUVEGARDE
[
#!/bin/bash
Fonc_postgresql()
{
echo -e "File PostgreSQL ---DATA en Sauvegarde :"
PGSQL_DATA="PGSQL_DATA_CGIFCH_"$dat".backup"
# DATA
pg_dumpall --data-only --encoding utf8 --host 127.0.0.1 --port 5432 --username postgres --database CGIFCH -f $PGSQL_DATA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la sauvegarde veuillez corriger POSTGRESQL ---DATA"
exit 1
fi
echo -e "\n"
echo -e "File PostgreSQL --- SCHEMA en Sauvegarde:"
PGSQL_SCHEMA="PGSQL_SCHEMA_CGIFCH_"$dat".backup"
# SCHEMA
pg_dumpall --schema-only --encoding utf8 --host 127.0.0.1 --port 5432 --username postgres --database CGIFCH -f $PGSQL_SCHEMA
if [ $? -ne 0 ]
then
echo "une erreur pendant la sauvegarde veuillez corriger POSTGRESQL ---SCHEMA"
exit 1
fi
echo -e "\n sauvegarde BD PostgreSql Termine"
}
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
# le main
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo "bonjour"
dat=$(date +%Y%m%d)
cd "$HOME/UpdateBD/" 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Branche le lecteur"
exit 1
fi
echo -e "Voulez-SAUVEGARDER Y/N? : "
read yes
if [ "$yes" = "y" ] || [ "$yes" = "Y" ]
then
chemin_sav="$HOME/UpdateBD/DATABASE_"$dat
mkdir $chemin_sav 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier de sauvegarde déjà existant"
exit 1
fi
cd $chemin_sav
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier inacessible"
exit 1
fi
echo -e "Sauvegarde PostGresql : Y/N :"
read yesp
if [ "$yesp" = "y" ] || [ "$yesp" = "Y" ]
then
Fonc_postgresql $dat
fi
fi
echo "Ok, bye!"
exit 0
=================================================================================
RESTORE
#!/bin/bash
Fonc_postgresql()
{
PGSQL_SCHEMA="PGSQL_SCHEMA_CGIFCH_"$dat".backup"
if [ -e "$PGSQL_SCHEMA" ]
then
# recharge et creation des tables et leurs definitions
# on ne signifie pas -d CGIFCH parce que la restauration vas recréer la database avec les roles et schemas
echo -n "File PostgreSQL ---SCHEMA A Restaurer :"
psql -U postgres -v ON_ERROR_ROLLBACK=ON -f $PGSQL_SCHEMA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger POSTGRESQL ---SCHEMA "
exit 1
fi
# recharge les données
PGSQL_DATA="PGSQL_DATA_CGIFCH_"$dat".backup"
echo -n "File PostgreSQL ---DATA A Restaurer :"
psql -U postgres -d CGIFCH -f $PGSQL_DATA
if [ $? -ne 0 ]
then
echo "une erreur est survenue pendant la restauration veuillez corriger POSTGRESQL ---DATA "
exit 1
fi
echo "restorer controler avec un vacum general \n\n\n"
fi;
}
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
# le main
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo "bonjour"
# disk USB de sauvegarde
cd "$HOME/UpdateBD/" 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Branche le lecteur"
exit 1
fi
cd $HOME/UpdateBD/
echo "recuperation Restaure BDsql: "
echo -n "Entrez: la date de sauvegarde : "
read dat
chemin_sav="$HOME/UpdateBD/DATABASE_"$dat
cd $chemin_sav 2>/dev/null
RetourCode=${?}
if [[ $RetourCode == 1 ]]
then
echo "Dossier de sauvegarde inexistant"
exit 1
fi
echo -e "Restauration de la base de données PostGresql Y/N \n"
read yes
if [ "$yes" = "y" ] || [ "$yes" = "Y" ]
then
Fonc_postgresql $dat
fi
echo "Ok, bye! "
exit 0
[/code