Retourner au contenu. Retourner à la navigation

 

Sauvegarder simplement mes sites web

by miguel @ 27/04/2007
Comment mettre en place des mise à jour automatisées des données des sites web et des bases de données d'un serveur web vers un serveur de sauvegarde.

Soit le schéma suivant :
Un serveur web nommé "Apache_serveur",  et un serveur de sauvegarde nommé "Sauv_serveur".

Configuration :

Apache_serveur :

serveur web --> apache

serveur de base de donnée --> mysql

serveur ftp --> pure-ftpd

Sauv_serveur :

Une distribution quelconque.

Nous supposons notre serveur web et notre serveur de base de donnée fonctionnels, et nous commencerons par installer pure-ftpd qui permettra aux utilisateurs de mettre à disposition leurs pages sur ledit serveur.



Installation et configuration d'un serveur ftp :

En fonction de la distribution linux utilisée, l'installation pourra se dérouler de plusieurs façons dont notamment via un paquet .rpm que nous trouverons à cette adresse :

http://sourceforge.net/project/showfiles.php?group_id=18317

Une fois le paquet téléchargé, placez-vous grâce à un terminal dans le répertoire de ce dernier.

L'installation du serveur se résume alors à cette commande :

rpm -Uvh pure-ftpd-*

Cette commande est à exécuter en mode super-utilisateur, et le caractère "*" correspond à la version du paquet que vous avez téléchargé, ex : pure-ftpd-1.0.21.rpm.

Si vous disposez d'une distribution de type Debian, l'exécution dans un terminal en mode super utilisateur de la ligne suivante devrait suffire à installer votre serveur ftp.

apt-get install pure-ftpd

La configuration de pure-ftpd peut être très fine, mais nous ne nous y attarderons pas.

Cependant les commandes suivantes peuvent nous permettre d'obtenir le résultat escompté :

groupadd ftpgroup
useradd -g ftpgroup -G serv_group -d /dev/null -s /etc ftpuser
rm /etc/pure-ftpd/auth/*
ln -s /etc/pure-ftpd/conf/PureDB/etc/pure-ftpd/auth/75puredb
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
echo "yes" > /etc/pure-ftpd/conf/CreateHome Dir
echo "21" > /etc/pure-ftpd/conf/Bind

Les utilisateurs qui seront autorisés à accèder à notre ftp seront des utilisateurs n'ayant pas de réels droits sur notre système, ils seront gérés par Pure-ftpd et seront  déclinés

à partir d'un seul compte utilisateur que nous avons ici nommé ftpuser.

Lors de la création de l'utilisateur en question (useradd) vous devez indiquer comme groupe secondaire (option -G) le groupe de votre serveur web. afin que celui-ci dispose des droits suffisants

pour afficher les pages web se trouvant dans les répertoires ftp. Remplacez donc "serv_group" par le groupe adéquat.

Maintenant que notre serveur ftp est installé et configuré, nous allons créer des comptes d'accès au répertoires à attribuer aux utilisateurs.

mkdir /usr/local/ftpusers/user1
pure-pw useradd webmaster -u ftpuser -d /usr/local/ftpusers/user1
pure-pw mkdb 

Renouvelez la manoeuvre pour chaque accès utilisateur à créer en remplaçant simplement "user1" par le nom de votre utilisateur.



Mise en place et automatisation des sauvegardes :

Nous nous connectons maintenant au serveur de sauvegarde sur lequel nous souhaitons sauvegarder nos répertoires ftp et nos bases de données.

Sauv_serveur

useradd -m user1
passwd user1
useradd -m database
passwd database

Nous avons ci-dessus créé l'utilisateur "user1" ainsi que son répertoire personnel "/home/user1" grâce à l'option -m; idem pour l'utilisateur database.

L'automatisation de nos sauvegarde va se réaliser simplement grâce à l'utilisation des commandes "crontab -e" et "rsync".

Sur notre serveur web nous allons grâce à crontab définir une tâche planifiée.

Apache_serveur

crontab -e
45 1 *** rsync -a /usr/local/ftpusers/user1 user1:mot_de_passe@192.168.0.200:/home/user1

La commande "crontab -e" nous permet de définir en une ligne l'exécution planifiée d'une commande.

La définition des lignes est la suivante : le premier champs "45" indique les minutes, le deuxième champs "1" indique les heures, le troisième le jour du mois(jusqu' à 31),

le quatième le mois (jusqu'a 12), le cinquième le jour de la semaine (de 0 pour dimanche à 6). Vient ensuite la commande à exécuter et ses arguments.

Les champs matérialisé par des étoiles prennent toutes les valeurs possibles.

Ici la commande rsync va synchroniser le répertoire "/usr/local/ftpusers/user1" présent localement vers le répertoire distant "/home/user1" que nous venons de créé sur

le serveur de sauvegarde localisé dans l'exemple à l'adresse 192.168.0.200 (à remplacer par l'adresse correcte dans votre commande). Le champs "mot_de_passe" doit ici

être remplacé par le mot de passe que vous avez définit sur le serveur de sauvegarde pour l'utilisateur user1.

Dans notre exemple, la sauvegarde s'effectuera tous les matin à 1h45.

L'astuce en ce qui concerne la sauvegarde de la base de donnée réside dans la création d'un script qui utilisera la commande "mysqldump" afin d'exporter la base dans un fichier ".sql" qui sera exporté vers le serveur de sauvegarde en utilisant crontab, comme vu précédemment.

mysqldump --all-databases > ~/monfichier_backup.sql
rsync ~/monfichier_backup database:mot_de_passe@192.168.0.200:/home/database/
Par miguel Dernière modification 27/04/2007 21:24
Navigation
Actualités
25/05/2009 Install-Party Mandriva Linux 2009 Spring
30/04/2009 Sortie de Mandriva 2009 Spring
13/03/2009 Soirée Open Source - Performances Open Storage / ZFS
13/03/2009 Conférence Symfony avec Fabien Potencier
18/02/2009 Wine 1.1.15
Plus d'actualités...
Articles
22/05/2008 Première approche de Qmail
19/05/2008 Test de la distribution Elive 1.0 Gem
14/05/2008 GNUPG introduction à la cryptographie et utilisation de GnuPG
21/02/2008 GNU / Screen
03/09/2007 The Linux File System Encryption API
More articles
Tips
02/02/2009 Des favoris synchronisés
27/01/2009 OpenSUSE: Comment supprimer les icônes d'aide
23/01/2009 Beep en ligne de commande
21/01/2009 Connaître son ip public derrière un routeur
28/04/2008 Mozilla Firefox : Google Talk et Facebook Chat
More tips
Codes
09/04/2008 Chapitre 13 - Administration DNS et DHCP
09/04/2008 Chapitre 06 - Service web avec Apache
04/04/2008 Chapitre 09 - PureFTPd
04/04/2008 Chapitre 06 - Scripting Bash
01/04/2008 Chapitre 20 - Haute Disponibilité
More codes
Courses
13/09/2006 Module 3
23/02/2006 Module 2
23/02/2006 Module 1
More courses
Formation Linux

Supinfo Training Center has the first Linux Certification. The training is 13 days and allow you to pass the LPI 101 and 102.

more info
 
 
Vous êtes ici :
Tips Sauvegarder simplement mes sites web