Dernière modification : February 16 2007 18:47:19.
Serveur de sauvegarde incrémentales
I.Configuration coté serveur :
1.Installation des logiciels :
# emerge openssh
# rc-update add sshd default
# /etc/init.d/sshd start
# emerge rsyncd
# rc-update add rsyncd default
# /etc/init.d/rsyncd start
# emerge dcron
# rc-update add dcron default
# /etc/init.d/dcron start
# crontab /etc/crontab
Preparer une partition pour acceuillir les sauvegardes.
Monter cette partition sur /mnt/sauvegarde.
2.Configuration du serveur pour un poste client :
Pour chaque utilisateur qui utilisera ce serveur de sauvegarde, il faut créé un groupe et un utilisateur :
user1 représente un utilisateur et guser1 son groupe.
# groupeadd guser1
# useradd -m -d /mnt/sauvegarde/user1 user1 -g guser1
On défini un mot de passe pour cet utilisateur :
# passwd user1
On efface les fichiers créés par la commande useradd :
# rm /mnt/sauvegarde/user1/.*
On met en place la sécurité des dossiers afin que seul user1 et root est accés à /mnt/sauvegarde/user1 :
# chgrp guser1 /mnt/sauvegarde/user1
# chown root /mnt/sauvegarde/user1
# chmod o-rwx /mnt/sauvegarde/user1
# mkdir /mnt/sauvegarde/user1/sauvegardes
# mkdir /mnt/sauvegarde/user1/jour
# mkdir /mnt/sauvegarde/user1/semaine
# mkdir /mnt/sauvegarde/user1/mois
# chmod -R o-rwx /mnt/sauvegarde/user1/
# chgrp -R guser1 /mnt/sauvegarde/user1/
# chmod g+w /mnt/sauvegarde/user1/sauvegardes
Création d'un dossier .ssh pour stocker le mot de passe.
# mkdir /mnt/sauvegarde/user1/.ssh
# chmod o+rx /mnt/sauvegarde/user1
# chgrp -R guser1 /mnt/sauvegarde/user1/.ssh
Automatisation des sauvegardes :
Créer un fichier /etc/cron.monthly/user1m.cron et y insérer :
#! /bin/bash
rm -rf /mnt/sauvegarde/user1/mois
mv /mnt/sauvegarde/user1/semaine /mnt/sauvegarde/user1/mois
mv /mnt/sauvegarde/user1/jour /mnt/sauvegarde/user1/semaine
cp -al /mnt/sauvegarde/user1/sauvegardes /mnt/sauvegarde/user1/jour
Rendre ce fichier exécutable :
# chmod u+x /etc/cron.monthly/user1m.cron
Créer un fichier /etc/cron.weekly/user1w.cron et y insérer :
#! /bin/bash
rm -rf /mnt/sauvegarde/user1/semaine
mv /mnt/sauvegarde/user1/jour /mnt/sauvegarde/user1/semaine
cp -al /mnt/sauvegarde/user1/sauvegardes /mnt/sauvegarde/user1/jour
Rendre ce fichier exécutable :
# chmod u+x /etc/cron.weekly/user1w.cron
Créer un fichier /etc/cron.daily/user1d.cron et y insérer :
#! /bin/bash
rm -rf /mnt/sauvegarde/user1/jour
cp -al /mnt/sauvegarde/user1/sauvegardes /mnt/sauvegarde/user1/jour
Rendre ce fichier exécutable :
# chmod u+x /etc/cron.daily/user1d.cron
Configuration du démon cron :
Editer /etc/crontab pour y inserer ces lignes :
#minutes heures jour mois jourdelasemaine commande
*/15 * * * * test -x /usr/bin/run-crons && /usr/sbin/run-crons
#selon l'emplacement de run-crons
0 * * * * rm -f /var/spool/cron/lastrun/cron.hourly
0 5 * * * rm -f /var/spool/cron/lastrun/cron.daily
0 4 * * 1 rm -f /var/spool/cron/lastrun/cron.weekly
0 3 1 * * rm -f /var/spool/cron/lastrun/cron.monthly
run-crons vérifie si des scripts sont à lancer dans /etc/cron.*
Le format de chaque entrée :
minutes : de 1 à 60
heures : de 1 à 24
jour : de 1 à 31
mois : de 1 à 12
jourdelasemaine : de 1 à 7
Recharger le fichier crontab :
# crontab /etc/crontab
II Configuration coté client :
1. Configuration du poste pour l'utilisateur user1 :
Créer dans /home un répertoire sauvegarde avec en lui donnant les droits d'accès pour user1.
# mkdir /home/sauvegarde
# chown user1 /home/sauvegarde
# chgrp users /home/sauvegarde
Ce répertoire est accessible aux membre du groupe "users"
Donc, maintenant vous pouvez copier les données à sauvegarder dans /home/sauvegarde
Créer un fichier /usr/sbin/sauvegardes.cron y insérer :
#! /bin/bash
date > /home/user1/rsync.log
sync -e ssh -av --delete --hard-links --progress "/home/sauvegarde/" \
user1@SERVEUR.domaine.com:./sauvegardes/ >> rsync.log
SERVEUR.domaine.com correspond au nom de la machine on peux le remplacer par son adresse IP.
Rendre ce fichier exécutable pour user1 :
# chwon user1 /usr/sbin/sauvegardes.cron
# chgrp users /usr/sbin/sauvegardes.cron
# chmod u+x /usr/sbin/sauvegardes.cron
Pour lancer une sauvegarde :
$ /usr/sbin/sauvegardes.cron
Pour automatiser la sauvegarde il faut un démon cron qui tourne puis copier le fichier qui vient d'être créer :
# cp /usr/sbin/sauvegardes.cron /etc/cron.daily
Configuration du mot de passe SSH :
# ssh-keygen -t rsa (appuyer 3 fois sur entrée)
# cat ~/.ssh/id_rsa.pub | ssh user1@SERVEUR.domaine.com 'cat - >> ~/.ssh/authorized_keys'
# ssh root@SERVEUR.domaine.com
# chmod go-w /mnt/sauvegarde/user1/.ssh
2. Réstauration des données :
Il est possible d'utiliser sftp, dans konqueror saisir l'adresse :
sftp://user1@SERVEUR.domaine.com.
Sous gnome j'utilise gftp qui gère bien sftp.
Voir les commentairesAjouter un commentaire