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

Nous allons donc vous proposer un script[1] des plus simples et le commenter :

1
#!/bin/bash
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
#!/bin/bash
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