Forum OVH  

Précédent   Forum OVH > Serveurs dédiés > HOW-TO
S'inscrire FAQ Guides Recherche Messages du jour Marquer les forums comme lus

Réponse
 
Outils de la discussion
Vieux 29/04/2008, 19h35   #1
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Arrow HOW TO ovh release 2 sauvegarde facile des sites ! VERSION2

Coucou !

EDIT DU 08-05-08
Le script vous envoie à présent un mail avec un récapitulatif de la sauvegarde.
Il vous précise pour chaque compte comment la sauvegarde s'est déroulée.

Par exemple :
Code:
ETAT DE VOTRE SAUVEGARDE  pour le 06-05-08
---------------------------------
battlero Sauvegarde sql ok.
battlero Sauvegarde ok.
---------------------------------
Code:
ETAT DE VOTRE SAUVEGARDE  pour le 06-05-08
---------------------------------
battlero Problème lors de la sauvegarde sql
battlero Sauvegarde ok.
---------------------------------

Pour ceux qui utilisent ce script, recommencez la phase d'installation ou bien téléchargez parametres.sh et ovh-sauve-V2.sh grâce à wget. Complétez ensuite les infos dans parametres.sh



EDIT DU 01/05/08 :
LE SCRIPT EFFACE MAINTENANT LES ANCIENNES SAUVEGARDES !
VOUS POUVEZ CHOISIR COMBIEN DE SAUVEGARDES CONSERVER !


Disclamer :
Je ne suis pas un pro, et ne peux être tenu pour responsable de pertes de données suite à l'utilisation de ce script!
Avant de vous le fournir, je l'ai bien entendu testé, et je n'ai trouvé aucun problème particulier !

Si vous avez envie de modifier ce script, faites le, il est la pour vous aider !

Si vous voulez partager les modifications de ce script, faites le à la suite de ce poste pour que tout le monde puisse suivre l'évolution !

Si vous avez envie de m'envoyer 500euros, demandez mon adresse postale !

Si vous avez envie de me baffer ... je suis plus là !



Utilité du script :
- Très facile à mettre en place
- Sauvegarde automatique via cron si vous le désirez !
- Lors de l'installation, il détectera les sites que vous hébergez et se paramétrera pour les sauvegarder sans vous embêter !
-Sauvegarde de vos site indépendamment les uns des autres pour une restauration site par site si vous le voulez !
-Sauvegarde sur votre disque dur OU sur ftp (quelconque ou celui qu'OVH vous fourni)
-Si la sauvegarde se fait sur ftp, vous aurez toutes les sauvegardes datées dans un répertoire. De cette façon si besoin, vous pouvez restaurer une sauvegarde qui date de 5 semaines
-Vous pourrez paramétrer le nombre d'anciennes sauvegardes à conserver


Encore à faire :
Donnez moi des idées


Installation du script :
La vous allez voir, j'ai tenté d'aider les débutants en préparant un script d'installation. juste avant de télécharger ce script il va vous falloir faire quelques petites choses :

Il vous faut lftp pour transférer les archives sur un ftp. Si vous voulez sauvegarder sur ftp, et que le paquet lftp n'est pas installé, faites le :
Code:
emerge --sync && emerge lftp
Créer un utilisateur backup
Connectez vous en ssh à votre serveur, assurez vous que vous avez les droits root, et tappez :
Code:
adduser backup
Un mot de passe va vous être demandé, je vous laisse le soin de le rentrer.
Notre utilisateur est crée, maintenant on lui donne un répertoire :
toujours avec les droits root, tappez :
Code:
mkdir /home/backup && chown -R backup /home/backup
Voilà, vous êtes prêts à installer le script !
La procédure est simple :
Rendez-vous dans le répertoire /home/backup et téléchargez le script d'installation en tapant ceci :
Code:
cd /home/backup/ && wget http://team.battleroyale.fr/linux/backupgentooV2/installbackup.sh
Ensuite, nous allons simplement exécuter le script d'installation :
Code:
sh /home/backup/installbackup.sh
Le script est automatique, et vous conseil, si tout c'est bien passé d''aller voir à l'intérieur de votre fichier : /home/backup/nom
Dans ce fichier, vous allez trouver les répertoires de vos sites. Il va en manquer, comme par exemple ftp, logs par exemple. C'est tout à fait normal car normalement ils ne servent à rien!

Donc si ce fichier vous convient (c'est à dire qu'il contient les bons répertoires contenus dans /home) refermez le
Si le contenu ne vous convient pas, ajouter ou enlever les noms correspondants.
IMPORTANT :
Dans ce fichier nom, ne mettez qu'un seul nom par ligne, et ne mettez aucun espace ou ligne vide !


Donc voilà, l'installation est finie, il va falloir passer à la phase de configuration!

Pour cette configuration il va vous falloir modifier 1 fichier :
/home/backup/parametres.sh


Pour éditer ce fichier :
Code:
nano /home/backup/parametres.sh

Vous devez logiquement modifier le mot "ICI" et donner vos informations au script.
Voilà c'est terminé !

Ligne à lancer pour sauvegarder vos sites :
Code:
sh /home/backup/ovh-sauve-V2.sh
Ligne à lancer pour restaurer vos sites :
Code:
sh /home/backup/ovh-restaur-V2.sh

A SAVOIR
Lors de la restauration, le script va restaurer tous les comptes qui se trouvent dans :
/home/backup/nomrest
Si vous ne désirez restaurer que quelques comptes, modifiez ce fichier (en respectant les normes données pour le fichier /home/backup/nom).
Si ce fichier n'existe pas, créez le (le script le fera lui même lors de la première restauration)

Si en passant par le module ovhm, vous ajoutez un hébergement, il vous faudra modifier le fichier /home/backup/nom pour y inclure vous même le compte à sauvegarder.
Si vous n'avez pas envie d'éditer vous même ce fichier, vous pouvez éventuellement supprimer les fichiers :
/home/backup/ovh-sauve-V2.sh
/home/backup/ovh-restaur-V2.sh
/home/backup/nom
/home/backup/nomrest
et recommencer l'installation du script (les nouveaux comptes seront donc pris en compte).

Dernière chose :
Si vous sauvegardez sur un ftp, chaque sauvegarde sera conservée dans un repertoire nommé du jour de la date de sauvegarde. (par exemple : 08-04-29).

Le script effacera les sauvegardes trop anciennes !
Le nombre de sauvegardes à conserver se trouve dans le fichier paramétres !



AIDONS NOUS
N'hésitez pas à donner des idées, ou des corrections, elle seront les bienvenues.



POUR SAUVEGARDER GRACE A CRON :
C'est tout simple, en root tappez :
Code:
crontab -e
et entrez un ligne comme ça :
Code:
00 6 * * * /home/backup/ovh-sauve-V2.sh
Cela permettra au script de s'executer à 6h00 du matin, et de sauvegarder tout seul

Pour restaurer :
Code:
sh /home/backup/ovh-restaur-V2.sh
Suivez les instructions, c'est basique, simple, mais cela fonctionne !

Dernière modification par madrippeur 06/05/2008 à 10h53
madrippeur est déconnecté   Réponse avec citation
Vieux 30/04/2008, 01h24   #2
papango
Membre
 
Date d'inscription: octobre 2005
Messages: 89
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

hello,
tu tombes bien, je cherchais un bon script.
Je n'ai pas encore testé le tien car en cours sur un autre depuis hier :-)

Voici pour moi les fonctions interessantes si ce n'est pas le cas:
- 1. copie bete et méchante des sites (/home/toto > backup/home/toto)
- 2. si il existe une 1ere sauvegarde, la zipper.
- 3. Si il existe un Zip trop vieux de X jours, le supprimer.
- 4. revenir à l'étape 1.

on aurait donc la derniere sauvegarde accessible directement (non compressée). Et X derniers zippés.
ça éviterait de descendre 20Go d'archive pour recuperer un fichier de 3Ko !!!

:-)
papango est déconnecté   Réponse avec citation
Vieux 30/04/2008, 01h46   #3
Bruno-KS
Membre
 
Date d'inscription: novembre 2007
Messages: 2 579
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

ovh-sauve-V2-1.sh :
Code:
#!/bin/bash
#################################PARAMETRES A EDITER###############################################################
# PARAMETRES A EDITER 								
SERVER="ICI"		    			#Serveur backup ftp
USERFTP="ICI"	            			#Votre nom d'utilisateur ftp
PASSFTP="ICI"			    		#Votre password ftp
ENVOIFTP="1"					#si 1 on envoie la sauvegarde sur un ftp si 0 on la laisse dans le repertoire /home/backup
PASSSQL="ICI"					#Definition du pass sql root
PORTFTP="ICI"					#Port du ftp
##############################################################################################################











#############################################Création des fichiers nécessaires###################################################
if [ ! -f /home/backup/nom ] >/dev/null
	then
	touch /home/backup/datesauve
	echo "0-0-0" > /home/backup/datesauve
fi
if [ ! -f /home/backup/nom ] >/dev/null
	then
	clear
	echo "Le fichier /home/backup/nom est manquant,"
	echo "ce script va définir les utilisateurs à sauvegarder"
	echo "Je vous conseil d'aller vérifier le contenu de ce fichier pour être sur que le"
	echo "contenu vous convienne."
	echo "Au prochain lancement, le script sauvegardera le contenu du fichier nom"
	cd /home/ && dir -1 > /home/backup/YEAH.txt
	sed -e '/backup/d' /home/backup/YEAH.txt > /home/backup/YEAH2.txt
	sed -e '/aquota.user/d' /home/backup/YEAH2.txt > /home/backup/YEAH.txt
	sed -e '/ftp/d' /home/backup/YEAH.txt > /home/backup/YEAH2.txt
	sed -e '/log/d' /home/backup/YEAH2.txt > /home/backup/YEAH.txt
	sed -e '/lost+found/d' /home/backup/YEAH.txt > /home/backup/YEAH2.txt
	cat /home/backup/YEAH2.txt > /home/backup/nom
	rm -f /home/backup/YEAH2.txt && rm -f /home/backup/YEAH.txt
exit 0
fi
if [ ! -d /home/backup/sauvegarde/ ] >/dev/null
	then
	mkdir /home/backup/sauvegarde
	chown -R backup /home/backup/restauration/
fi
if [ ! -d /home/backup/restauration/ ] >/dev/null
	then
	mkdir /home/backup/restauration
	chown -R backup /home/backup/restauration/
fi
if [ ! -f /home/backup/exclude.txt ] >/dev/null
	then
	touch /home/backup/exclude.txt
	chown backup /home/backup/exclude.txt
	echo '/home/*/www/stats' > /home/backup/exclude.txt
fi

#####################################Création des variables nécessaires############################################
TEMPDIR="/home/backup/sauvegarde/"
EXCLUDEFILE="/home/backup/exclude.txt"
DATE=`date +"%d-%m-%y"`
SAUVE=`cat /home/backup/datesauve`
if [ $ENVOIFTP = 1 ] >/dev/null
	then
	if [ $SAUVE != $DATE ] >/dev/null
		then
		lftp -p $PORTFTP ftp://$USERFTP:$PASSFTP@$SERVER -e "mkdir /$DATE ;quit"
		echo $DATE > /home/backup/datesauve
	fi
fi
#######################################################################################################
for USER in `cat /home/backup/nom`
do
sleep 2
clear
echo "------------------------------------------------------------------------"
echo $USER
if [ "$USER" != "ovh" -a "$USER" != "ovhm" -a "$USER" != "mysql" -a "$USER" != "vpopmail" ] >/dev/null
	then
	cd /home/$USER && mysqldump -u root -p$PASSSQL $USER >$USER.sql
fi
	nice -n 19 tar cfzX $TEMPDIR$USER.tar.gz $EXCLUDEFILE /home/$USER/
	nice -n 19 rm -f /home/$USER/$USER.sql
	if [ $ENVOIFTP = 0 ] >/dev/null
	then
	nice -n 19 chown backup /home/backup/sauvegarde/$USER.tar.gz
	fi
if [ $ENVOIFTP = 1 ] >/dev/null
then
nice -n 19 lftp -p $PORTFTP ftp://$USERFTP:$PASSFTP@$SERVER -e "cd /$DATE/ && put   /home/backup/sauvegarde/$USER.tar.gz ;quit"
nice -n 19 rm -f /home/backup/sauvegarde/$USER.tar.gz
fi
done

ovh-restaur-V2.sh :
Code:
#!/bin/bash
#################################PARAMETRES A EDITER############################################
RESTODEPUISFTP="1"						#Pour restaurer depuis un ftp mettre à 1 sinon mettre à zero
SERVER="ICI"		   		 			#Serveur backup ftp
USERFTP="ICI"	            					#Votre nom d'utilisateur ftp
PASSFTP="ICI"		    					#Votre password ftp
PASSSQL="ICI"							#Definition du pass sql root
PORTFTP="21"							#Port du ftp
#############################################################################################











###################################Création des fichiers nécessaires##########################################
if [ ! -d /home/backup/restauration/ ] >/dev/null
	then
	mkdir /home/backup/restauration
	chown -R backup /home/backup/restauration/
fi
if [ ! -f /home/backup/datesauve ] >/dev/null
	then
	echo "Il n'y a jamais eu de sauvegarde d'effectuée !"
	echo "Effectuez au moins une sauvegarde pour que la restauration soit possible"
	sleep 5
	exit 0
fi
TEST=`cat /home/backup/datesauve`
if [ $TEST = "0-0-0" ] >/dev/null
	then
	echo "Il n'y a jamais eu de sauvegarde d'effectuée !"
	echo "Effectuez au moins une sauvegarde pour que la restauration soit possible"
	sleep 5
	exit 0
fi
if [ ! -f /home/backup/nomrest ] >/dev/null
	then
	cat /home/backup/nom > /home/backup/nomrest
fi
###############################Création des variables nécessaires###################################################
SAUVE=`cat /home/backup/datesauve`
REPDLARCHIVE="/home/backup/restauration/"
####################################################################################################
clear
echo "La date de votre dernière sauvegarde est :"
echo "		$SAUVE"
echo "Si vous voulez restaurer à partir d'une date plus ancienne,"
echo "modifiez le fichier : /home/backup/datesauve"
echo ""
echo "Ecrivez continuer pour restaurer à partir de cette date"
echo "Ecriver stop pour arrêter le script et modifier vous même la date de restauration"
echo "dans le fichier /home/backup/datesauve"
echo -n "Votre Choix : "
read choix
if [ $choix != continuer ] >/dev/null
then
exit 0
fi
clear
for USER in `cat /home/backup/nomrest`
do
echo "--------------------------------------------------------------"
echo $USER
ERREUR="0"
if [ $RESTODEPUISFTP = 1 ] >/dev/null
then
echo "télèchargement de l'archive"
cd $REPDLARCHIVE && lftp -p $PORTFTP ftp://$USERFTP:$PASSFTP@$SERVER -e "get /$SAUVE/$USER.tar.gz ;quit"
echo "télèchargement de l'archive terminé"
fi
if [ ! -f /home/backup/restauration/$USER.tar.gz ] >/dev/null
	then
	echo "La sauvegarde $USER n'existe pas! ce nom as t'il été sauvegardé ?"
	sleep 4
	ERREUR="1"
fi
if [ $ERREUR = 0 ] >/dev/null
then
	echo "décompression de l'archive récupérée"
	tar xzf $REPDLARCHIVE$USER.tar.gz

	if [ -f /home/backup/restauration/$USER.sql ] >/dev/null
		then
		cd /home/backup/restauration/home/$USER && mysql -u root -p$PASSSQL -D $USER < $USER.sql
		echo "Base de donnée restaurée"
	fi
	rm -f $REPDLARCHIVE$USER.tar.gz
	rm -f /home/backup/restauration/home/$USER/$USER.sql
	echo "restauration des fichiers du site"
	cp -r -f  /home/backup/restauration/home/$USER/* /home/$USER
	chown -R $USER:users /home/$USER
	rm -R -f /home/backup/restauration/*
	echo "Opération terminée pour ce site : $USER"
	echo "--------------------------------------------------------------"
	sleep 2
fi
done
__________________
Scientia Vincere Tenebras
Bruno-KS est déconnecté   Réponse avec citation
Vieux 30/04/2008, 13h18   #4
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

Mon script fait ce que tu demande.
Il envoie tes sites, zippés, sur le ftp ovh (ou autre) ou bien dans un repertoire : /home/backup/sauvegarde.
Il te sépare à chaque sauvegarde les differentes sauvegardes dans un répertoire nommé par exemple : 29-04-08, mais uniquement si tu passe par la sauvegarde ftp.
Si tu sauvegarde sur ton hdd (pour un gain de place) il ne te conserve que la derniere sauvegarde.
Pour restaurer, il y a un script relativement simple qui te dis : la derniere sauvegarde date de tel jour, voulez vous restaurer?
Tu as la possibilité, si tu sauvegarde sur ftp, de lui dire de restaurer à partir d'un répertoire plus ancien en modifiant le fichier : /home/backup/datesauve.

Pour le moment, le script n'efface pas les sauvegardes plus anciennes, la j'aurai besoin de votre aide ^^

Ce que je peux faire aussi, c'est éventuellement laisser le choix à l'utilisateur si il veux zipper ou non ses fichiers. Vous me dites si c'est utile, mais perso, je préfère zipper.

Dernière modification par madrippeur 30/04/2008 à 13h35
madrippeur est déconnecté   Réponse avec citation
Vieux 01/05/2008, 09h38   #5
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

J'ai trouvé une solution pour effacer les anciennes sauvegardes !
Je teste sous toutes les coutures, et je vous tiens au courant !
madrippeur est déconnecté   Réponse avec citation
Vieux 01/05/2008, 10h25   #6
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

Voilà j'ai testé le script sous le plus d'angles possibles, je n'ai pas trouvé de problèmes.

EDIT DU 01/05/08 :
LE SCRIPT EFFACE MAINTENANT LES ANCIENNES SAUVEGARDES !
VOUS POUVEZ CHOISIR COMBIEN DE SAUVEGARDES CONSERVER !
madrippeur est déconnecté   Réponse avec citation
Vieux 01/05/2008, 17h20   #7
papango
Membre
 
Date d'inscription: octobre 2005
Messages: 89
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

au fait pour les vrais newbie, le groupe "backup" n'existe pas (erreur avec chown) et le répertoire "ovh-V2" non plus sur le FTP (Peut etre le mettre en parametre ?)
papango est déconnecté   Réponse avec citation
Vieux 01/05/2008, 18h15   #8
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

oups... oui c'est vrai ^^
je modifie
madrippeur est déconnecté   Réponse avec citation
Vieux 01/05/2008, 23h02   #9
papango
Membre
 
Date d'inscription: octobre 2005
Messages: 89
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

ça marche nickel :-)

améliorations ?
- pouvoir faire une restauration partielle (un fichier, un repertoire, une table, plusieurs tables...) sans avoir à tout péter )
papango est déconnecté   Réponse avec citation
Vieux 02/05/2008, 14h40   #10
madrippeur
Membre
 
Date d'inscription: décembre 2006
Messages: 823
Envoyer un message via MSN à madrippeur
Re : HOW TO ovh released 2 sauvegarde facile des sites ! VERSION2

C'est possible de ne restaurer qu'un seul utilisateur !
Par contre le fait de ne restaurer qu'un utilisateur, cela a pour effet de restaurer le contenu du www de ce même utilisateur, ainsi que la base de donnée. On ne peux pas restaurer que le site ou un répertoire de ce site, ou que la base de donnée.

Je vais regarder si je peux faire quelque chose pour ça, mais je ne suis pas sûr d'en être capable.
Pour le feedback, n'hésitez pas à dire si cela fonctionne ou pas

Citation:
ça marche nickel :-)
Merci de ton avis
madrippeur est déconnecté   Réponse avec citation
Réponse

Outils de la discussion

Règles de messages
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : non
Le code HTML peut être employé : non



Fuseau horaire GMT +2. Il est actuellement 16h55.


© OVH 1999-2010