Réalisation de scripts de sauvegarde
Création d'un répertoire récepteur des sauvegardes
Pour cette partie, on utilise toujours l'utilisateur Linux postgres
(sudo -i -u postgres
pour y accéder).
On va d'abord créer un répertoire de sauvegarde pour faciliter la gestion.
1
su #on se met en super-user (le mot de passe du root vous sera demander)
2
3
mkdir ./backups
4
5
chown postgres:postgres ./backups #on change le propriétaire du répertoire qui vient d'être créer
6
7
chmod 760 ./backups #on change les droits sur ce répertoire pour permettre à postgres de pouvoir faire ses sauvegardes dans celui-ci
8
9
exit
Exemple de script
1
2
3
TODAY=$(date +%Y-%m-%d)
4
BACKDIR=/var/lib/postgresql/backups
5
6
pg_dump -cC --file $BACKDIR/$1_$TODAY.dump $1
Pour exécuter ce script, il suffira d'être connecté en tant que postgres et de lancer la commande suivante :
./backup.sh nom_de_la base à sauvegarder
Dans le script, $1 correspond au premier argument envoyé au script (ici, cet argument est le nom de la base de données).
Autre exemple pour une restauration
On va proposer un script qui permet de restaurer une sauvegarde dans une autre qui prendra deux arguments : le nom du fichier de sauvegarde ($1).
1
2
3
BACKDIR=/var/lib/postgresql/backups
4
5
psql -f $BACKDIR/$1
Voici donc la commande à exécuter :
. /backup.sh fichier.dump nom_de_la_base