View previous topic :: View next topic |
Author |
Message |
bouleetbil Guru
Joined: 06 Jul 2004 Posts: 456 Location: Montpellier
|
Posted: Fri Dec 30, 2005 6:58 am Post subject: [howto] Serveur de sauvegarde incrémentales |
|
|
Bonjour,
J'ai lu un article sur Linux pratique qui me paraissait sympa donc le voila adapté pour Gentoo pour ceux que cela intérresse :
Serveur de sauvegarde incrémentales
I.Configuration coté serveur :
1.Installation des logiciels :
Code: | # 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.
Code: | # groupeadd guser1
# useradd -m -d /mnt/sauvegarde/user1 user1 -g guser1 |
On défini un mot de passe pour cet utilisateur :
On efface les fichiers créés par la commande useradd :
Code: | # 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 :
Code: | # 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.
Code: | # 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 :
Code: | #! /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 :
Code: | # chmod u+x /etc/cron.monthly/user1m.cron |
Créer un fichier /etc/cron.weekly/user1w.cron et y insérer :
Code: | #! /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 :
Code: | # chmod u+x /etc/cron.weekly/user1w.cron |
Créer un fichier /etc/cron.daily/user1d.cron et y insérer :
Code: | #! /bin/bash
rm -rf /mnt/sauvegarde/user1/jour
cp -al /mnt/sauvegarde/user1/sauvegardes /mnt/sauvegarde/user1/jour |
Rendre ce fichier exécutable :
Code: | # chmod u+x /etc/cron.daily/user1d.cron |
Configuration du démon cron :
Editer /etc/crontab pour y inserer ces lignes :
Code: | #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 :
Code: | # 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.
Code: | # 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 :
Code: | #! /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 :
Code: | # chwon user1 /usr/sbin/sauvegardes.cron
# chgrp users /usr/sbin/sauvegardes.cron
# chmod u+x /usr/sbin/sauvegardes.cron |
Pour lancer une sauvegarde :
Code: | $ /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 :
Code: | # cp /usr/sbin/sauvegardes.cron /etc/cron.daily |
Configuration du mot de passe SSH :
Code: | # 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. _________________ L'homme n'est pas fait pour travailler ça le fatigue.
LiveCD Gentoo : http://www.frogdev.info
Gentoo/Freebsd : http://www.frogdev.info/gentoo_freebsd.php |
|
Back to top |
|
|
bibi.skuk Guru
Joined: 01 Aug 2005 Posts: 425
|
Posted: Fri Dec 30, 2005 10:40 am Post subject: |
|
|
petite suggestion... lors de la creation des utilisateurs...
l'option -k de useradd permet de specifier un repertoire skel, autre que celui par defaut... et donc d'eviter de supprimer les fichiers générés par useradd...
Edit : bien joué, je vais mettre un truc similaire en place... |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|