Ecrivez moi !
english french

SME et les sauvegardes

Type How To
Version 1.1
Testé sur SME 6.0 et 6.0.1

Objet
Backup to desktop : customisation
Alternatives
Change Log

Objet

SME est un produit fantastique, mais il faut tout de même penser à effectuer de temps en temps des sauvegardes...

Dans le server-manager, il existe un outil de sauvegarde. Cet outil permet deux type de sauvegarde :

Backup to desktop : customisation

Quelques informations sur la fonction 'backup to desktop' ( via le browser web).

Je dois signaler que je reconstitue ici plus ou moins un How To que j'avais trouvé sur Internet, mais dont je ne retrouve plus trace. Si quelqu'un sait ou se trouve le how to d'origine, merci de me le signaler.

D'abord, il semble que cette fonction rencontre de gros problèmes de fiabilité, si les volumes à sauvegarder sont importants.
Apparemment, il est impossible de sauvegarder plus de 4 Go.
Pire, il est impossible de restaurer un backup de plus de 2 Go !

Cette solution n'est donc adaptée qu'aux petits backups. Cependant, les disques durs sont de plus en plus gros, et la nature a horreur du vide... Si la seule solution de backup est le 'backup to desktop' il faut pouvoir 'tuner' la bête

Mais d'abord, que sauvegarde au juste le 'backup to desktop' ? Ceci dépend un peu de la version de SME, mais depuis SME 5.5, la liste est a peu près la même. Simplement, elle ne se trouve pas au même endroit.
En SME 6.0 (et je pense 5.6) la liste des fichiers à sauvegarder se trouve au sein d'une fonction dans un fichier nommé :
/usr/lib/perl5/site_perl/esmith/Backup.pm
Voici la fonction d'origine, qui débute à la ligne 70 :

sub restore_list
{
    my ($self) = @_;

    return (
        'home/e-smith',
        'etc/e-smith/templates-custom',
        'etc/e-smith/templates-user-custom',
        'etc/ssh',
        'root',
        'etc/passwd',
        'etc/shadow',
        'etc/group',
        'etc/gshadow',
        'etc/samba/smbpasswd',
        'etc/smbpasswd',
    );
}
Ne vous laissez pas abuser par le nom de la fonction, c'est bien celle qui est utilisée pour le backup aussi.

En SME 5.5, la liste était directement présente dans le fichier :
/etc/e-smith/web/functions/backup
(La liste commence vers la ligne 58)

Il est possible d'ajouter des fichiers dans cette liste, en faisant attention de :

Cependant, ceci ne ferait qu'augmenter la taille du fichier, ce qui n'est pas exactement le but !

Il est possible de créer un fichier d'exclusion.
Par exemple, si vous stockez sur un I-Bay nommé backup les sauvegardes de vos P.C. du réseau, il n'est peut-être pas raisonnable de sauvegarder vos sauvegardes !.
Et si dans un ibay nommé commun vous avez copié dans le sous dossier catalogue de volumineux catalogues représentant plusieurs CDs pour les rendre disponible à tous vos utilisateurs, il vaut également mieux éviter de le sauvegarder.

A noter : Ce fichier s'applique en soustraction de la liste précédente. Il est donc inutile de mentionner dans votre fichier le dossier fichiers/gros/ si fichiers/ ne fait pas partie de la liste d'inclusion vue précédemment ! (Rappelez vous, les ensembles, à l'école primaire :-D )

Création du fichier d'exclusion

Il parait judicieux de mettre ce fichier dans une zone sauvegardée... Comme il s'agit d'un fichier de paramètres, il trouve sa place dans /home/e-smith. Je propose d'appeler ce fichier /home/e-smith/backup.exclude
Le fichier doit contenir la liste des fichiers et/ou répertoires à exclure présentés avec le chemin complet, mais sans le premier /, de la même manière que les fichiers à sauvegarder.
Dans notre exemple, çà donne ceci :

home/e-smith/files/ibays/backup
home/e-smith/files/ibays/commun/catalogue

Maintenant, il reste à modifier le script de backup pour qu'il prenne en compte ce fichier. Pour ce faire, deux solutions :

  1. Vous êtes définitivement fâchés avec vi, et vous préférez utiliser un fichier backup déjà modifié. Allez ICI
  2. Vous aimez bidouiller vraiment votre système, et vous êtes le meilleur. Allez ICI

Installation du fichier backup pré-modifié

Je vous fourni ici une version déjà modifiée du fichier /etc/e-smith/web/functions/backup.
En plus de la modification pour la prise en compte du fichier d'exclusion /home/e-smith/backup.exclude ce fichier estime mieux la taille du Backup : en effet, il soustrait la taille des exclusions à l'estimation initiale ! Et comme un bonheur n'arrive jamais seul, le nom de fichier de backup n'est plus smeserver.tgz mais smeserver-AAAA-MM-JJ.tgz (AAAA-MM-JJ représentant la date du jour). Enfin, la sauvegarde est tout de même réalisée même en cas d'absence du fichier /home/e-smith/backup.exclude.

Attention : ne rapatriez ce fichier que si vous êtes en SME 6.0 ou 6.0.1 !!!
Je ne sais absolument pas s'il est compatible avec une autre version de SME.

Le fichier se trouve ICI.
Voici une procédure directe pour l'installation, depuis une console du serveur : (Je n'ai pas mis les messages de retour pour faciliter le copier/coller :-) )

cd /tmp
cp /etc/e-smith/web/functions/backup .
wget http://www.schirrms.net/files/backup.tar.gz
tar -xvPzf backup.tar.gz
chown root:admin /etc/e-smith/web/functions/backup
chmod 4750 /etc/e-smith/web/functions/backup

Pour les plus curieux vous pouvez ensuite taper :

diff -u backup /etc/e-smith/web/functions/backup
afin de connaître toutes les modifications apportées.

Cà y est, votre Backup est customisé !

Modification 'à la main' du fichier backup

Avec votre éditeur de fichier favori, modifiez /etc/e-smith/web/functions/backup
Vous trouverez (à la ligne 447 pour SME 6.0, à la ligne 384 pour SME 5.5) la ligne suivante :

            "/bin/tar --directory / --create @directories --file=-"
Il faut modifier la ligne de manière à ajouter la partie --exclude-from /home/e-smith/backup.exclude ce qui donne ceci :
            "/bin/tar --directory / --create @directories --exclude-from /home/e-smith/backup.exclude --file=-"

Après avoir modifié le fichier , vérifiez les droits :

# ls -l /etc/e-smith/web/functions/backup
-rwsr-x---    1 root     admin       32833 mar 12 22:06 /etc/e-smith/web/functions/backup
Si la première partie n'est pas exactement -rwsr-x--- il faut taper la commande suivante :
# chmod 4750 /etc/e-smith/web/functions/backup
Si le propriétaire et le groupe ne sont pas root et admin il faut taper la commande suivante :
# chown root:admin /etc/e-smith/web/functions/backup

C'est tout, vous avez maintenant une sauvegarde customisée.

Alternatives

Tout ceci est bien beau, mais si vous voulez outrepasser la limitation de 2 Go de sauvegardes, que faire ?

Vous trouverez sur le site myezserver.com une contrib : backup2ws qui doit permettre de faire des sauvegardes vers un poste du réseau en plusieurs fichiers de taille limitée (par exemple 2 Go). Je n'ai pas testé cette contrib, à vous de voir !

Change Log

12 mars 2004 Version Initiale
19 mars 2004 Améliorations des explications pour le fichiers backup.exclude.
Lien vers mon fichier /etc/e-smith/web/functions/backup pre-customisé.