[Article] Exemple de script de sauvegarde pour un dédié
21 messages • Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
[Article] Exemple de script de sauvegarde pour un dédié
Nouveau tuto en utilisant RSYNC ici : http://www.webrankinfo.com/forums/viewtopic_95025.htm (plus sécurisé...)
Bonsoir,
Ce soir , ayant eu un disque dur USB en plus sur mon serveur j'ai décidé de me lancer dans la rédaction d'un script basique (et compréhensible) de backup pour un serveur dédié
On a par exemple le dossier /backup/
Le script va supprimer le dossier de sauvegarde vieux de deux jours
Le script va créer un répertoire dans le dossier backup a la date du jour (ex : 13012008)
Le script va créer une archive .tar du dossier /var/www (possibilité de faire une boucle et un tar par site assez facilement
)
Le script va faire un dump sous la forme nom_table.sql.gz pour chaque table mysql
Les sauvegardes mysql et des sites étant bien sur placée dans le répertoire a la date du jour
Si vous avez des améliorations ou des demandes n'hesitez pas
Pour la mise en place
Moi je l'ai mis dans : /etc/save/save
Il faut faire :
chmod +x /etc/save/save (pour qu'il soit executable)
chown root /etc/save/save (seul root peut modifier le fichier)
chmod 700 /etc/save/save (seul root peut voir le fichier)
Moi je planifie ca tout les jours a 3h du matin, pour ca on fait :
crontab -e
Puis on ajoute la règle :
00 3 * * * sh /etc/save/save
Ron
Bonsoir,
Ce soir , ayant eu un disque dur USB en plus sur mon serveur j'ai décidé de me lancer dans la rédaction d'un script basique (et compréhensible) de backup pour un serveur dédié
On a par exemple le dossier /backup/
Le script va supprimer le dossier de sauvegarde vieux de deux jours
Le script va créer un répertoire dans le dossier backup a la date du jour (ex : 13012008)
Le script va créer une archive .tar du dossier /var/www (possibilité de faire une boucle et un tar par site assez facilement
Le script va faire un dump sous la forme nom_table.sql.gz pour chaque table mysql
Les sauvegardes mysql et des sites étant bien sur placée dans le répertoire a la date du jour
Si vous avez des améliorations ou des demandes n'hesitez pas
- Code: Tout sélectionner
#!/bin/bash
echo Script de sauvegarde ...
#
# Sauvegarde - script basique
# Fontenay Ronan
# Aide pour la rédaction de ce script : http://snippets.prendreuncafe.com/snippet/67
###### Debut Initialisation ######
#user mysql :
strMysqlUser=""
#mot de passe mysql de l'user:
strPassword=""
#dossier ou on stockera les backups
#/!\ Penser a mettre un slash de chaque coté : ex : /media/backup/
repTravail="/backup/"
dateActuelle=$(date +%d%m%Y)
datePassee=$(date --date '2 days ago' +%d%m%Y)
repTravailActuel=$repTravail$dateActuelle
echo - Suppression du repertoire $repTravail$datePassee
rm -rf $repTravail$datePassee
echo -----------------------------------------------------
echo - Création du repertoire $repTravailActuel
mkdir $repTravailActuel
echo -----------------------------------------------------
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActuel/www.tar /var/www/*
echo -----------------------------------------------------
echo - Backup MYSQL
echo -----------------------------------------------------
listDatabase=$(mysql --user=$strMysqlUser --password=$strPassword --exec="SHOW DATABASES;" | tail -n +2)
#dump de chaque base dans un fichier
for lineDatabase in $listDatabase
do
echo Debut du dump de la base $lineDatabase vers $repTravailActuel
mysqldump --user="$strMysqlUser" --password="$strPassword" "$lineDatabase" | gzip > "$repTravailActuel"/"$lineDatabase".sql.gz
echo Dump compressé dans $repTravailActuel/$lineDatabase.sql.gz
echo -----------------------------------------------------
done
echo Fin de la sauvegarde
exit 0
Pour la mise en place
Moi je l'ai mis dans : /etc/save/save
Il faut faire :
chmod +x /etc/save/save (pour qu'il soit executable)
chown root /etc/save/save (seul root peut modifier le fichier)
chmod 700 /etc/save/save (seul root peut voir le fichier)
Moi je planifie ca tout les jours a 3h du matin, pour ca on fait :
crontab -e
Puis on ajoute la règle :
00 3 * * * sh /etc/save/save
Ron
Dernière édition par Ron56 le Ven Juin 13, 2008 16:13, édité 2 fois.
hm19000 a écrit:Merci pour cet article.Pour les bases de donnée, est que c'est possible faire une sauvegarde de toutes les bases qui se trouve sur le serveur (avec root en mysql) ?
Le script le fait
Avec mysqldump c'est très facile
je me permets d'apporter une précision pour ton script.
l'intéret d'une sauvegarde n'est pas de garder uniquement celle d'il y a 2 jours.
en général lorsqu'on sauvegarde dans un environnement pro par exemple, c'est plus ou moins sous cette forme :
- 1 sauvegarde toutes les nuits sur 7 jours glissants : on garde 7 sauvegardes des 7 derniers jours
ensuite en fin de chaque semaine :
- 1 sauvegarde par semaine (on archive la sauvegarde de j+6)
ensuite une sauvegarde en fin de chaque mois
parce que, admettons par exemple que dans ton cas, tu partes en week-end, en congés et qu'il y ait eu un crash sur ta base, et que ta base "crashée" a été sauvegardée et a donc écrasée ta précédente sauvegarde ?
bin,t'as plus rien ...
en revanche dans mon cas, tu peux remonter sur plusieurs semaines.
enfin c'est comme ca qu'on fait en général.
ensuite un p'tit tar -czf pour créer automatiquement des de type backup-20080115.tar.gz.
l'intéret d'une sauvegarde n'est pas de garder uniquement celle d'il y a 2 jours.
en général lorsqu'on sauvegarde dans un environnement pro par exemple, c'est plus ou moins sous cette forme :
- 1 sauvegarde toutes les nuits sur 7 jours glissants : on garde 7 sauvegardes des 7 derniers jours
ensuite en fin de chaque semaine :
- 1 sauvegarde par semaine (on archive la sauvegarde de j+6)
ensuite une sauvegarde en fin de chaque mois
parce que, admettons par exemple que dans ton cas, tu partes en week-end, en congés et qu'il y ait eu un crash sur ta base, et que ta base "crashée" a été sauvegardée et a donc écrasée ta précédente sauvegarde ?
bin,t'as plus rien ...
en revanche dans mon cas, tu peux remonter sur plusieurs semaines.
enfin c'est comme ca qu'on fait en général.
ensuite un p'tit tar -czf pour créer automatiquement des de type backup-20080115.tar.gz.
Encore mieux pour celui qui a plusieurs dédiés, avec rsync :
Pour backup de serveur A vers serveur B :
Etape 1 :
Sur la machine B, on crée une clef ssh :
on valide le nom proposé par défaut et on entre une passphrase vide.
Etape 2 :
On copie cette clef sur la machine A:
SERVEUR est l'IP de A et Port son port ssh.
On entre son mot de passe root ssh et son paswword.
Etape 3 :
On sauvegarde la BDD Mysql de A sur B (en supposant que mysql est dans /var/lib/mysql/ et que l'on veut le sauvegarder dans /var/sauvegarde)
SERVEUR est l'IP de A et Port son port ssh.
Ensuite, il suffit de mettre tout cela dans un cron et le tour est joué
Avec ces options seul les fichiers modifiés sont mis a jour et ils sont sauvegardés avec le même UID groupe et Utilisateur.
Pour faire un restaure, il suffit d'inverser l'opération. Il est également possible de suavegarder n'importe quelle partie du systéme de fichier du serveur A sur n'importe quelle partie du système de fichier de B.
Si vous avez plusieurs serveurs, vous pouvez mettre en place des backups croisés.
Pour backup de serveur A vers serveur B :
Etape 1 :
Sur la machine B, on crée une clef ssh :
- Code: Tout sélectionner
ssh-keygen -t dsa -b 1024
on valide le nom proposé par défaut et on entre une passphrase vide.
Etape 2 :
On copie cette clef sur la machine A:
- Code: Tout sélectionner
ssh-copy-id -i ~/.ssh/id_dsa.pub "-p PORT SERVEUR"
SERVEUR est l'IP de A et Port son port ssh.
On entre son mot de passe root ssh et son paswword.
Etape 3 :
On sauvegarde la BDD Mysql de A sur B (en supposant que mysql est dans /var/lib/mysql/ et que l'on veut le sauvegarder dans /var/sauvegarde)
- Code: Tout sélectionner
rsync -avz --progress --delete -e "ssh -p PORT" root@SERVEUR:/var/lib/mysql/ /var/sauvegarde --exclude=.*
SERVEUR est l'IP de A et Port son port ssh.
Ensuite, il suffit de mettre tout cela dans un cron et le tour est joué
Avec ces options seul les fichiers modifiés sont mis a jour et ils sont sauvegardés avec le même UID groupe et Utilisateur.
Pour faire un restaure, il suffit d'inverser l'opération. Il est également possible de suavegarder n'importe quelle partie du systéme de fichier du serveur A sur n'importe quelle partie du système de fichier de B.
Si vous avez plusieurs serveurs, vous pouvez mettre en place des backups croisés.
- [--Eric--]
- WRInaute impliqué

- Messages: 415
- Inscription: Mar Jan 06, 2004 10:48
Le problème avec rsync c'est que si tu te fais hacker ton serveur avec suppression de données juste avant la sauvegarde, après t'es mal
Par contre pour restaurer c'est vrai que c'est nickel.
Le mieux est je pense de faire des sauvegardes comme indiqué plus haut et de les "mettre à l'abri" sur une autre machine si on en a plusieurs.
Le mieux est je pense de faire des sauvegardes comme indiqué plus haut et de les "mettre à l'abri" sur une autre machine si on en a plusieurs.
-

Topsitemaker - WRInaute impliqué

- Messages: 376
- Inscription: Dim Nov 19, 2006 0:47
Bonjour,
En plus de faire des sauvegardes completes et incrementals (économie de mémoire de masse), et du rsync, je crypte les fichiers de sauvegarde avec gpg pour 2 raisons, quand je rapatrie mes sauvegardes par FTP, s'il y a un parasite qui intercepte mon fichier il ne pourra pas le lire. Ensuite Si le serveur de sauvegarde se fait hacker, les données sensibles de la sauvegarde des autres serveurs ne sont pas visibles.
En plus de faire des sauvegardes completes et incrementals (économie de mémoire de masse), et du rsync, je crypte les fichiers de sauvegarde avec gpg pour 2 raisons, quand je rapatrie mes sauvegardes par FTP, s'il y a un parasite qui intercepte mon fichier il ne pourra pas le lire. Ensuite Si le serveur de sauvegarde se fait hacker, les données sensibles de la sauvegarde des autres serveurs ne sont pas visibles.
- [--Eric--]
- WRInaute impliqué

- Messages: 415
- Inscription: Mar Jan 06, 2004 10:48
Oui bonne idée en effet de crypter car avoir une sauvegarde sur un serveur qui se fait hacker...
Un petit tuto?...
Sinon pour le code plus haut il y a une petite coquille :
a corriger par
Sinon pour le code plus haut il y a une petite coquille :
- Code: Tout sélectionner
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActueldd/www.tar /var/www/*
a corriger par
- Code: Tout sélectionner
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActuel/www.tar /var/www/*
-

Topsitemaker - WRInaute impliqué

- Messages: 376
- Inscription: Dim Nov 19, 2006 0:47
[--Eric--] a écrit:Oui bonne idée en effet de crypter car avoir une sauvegarde sur un serveur qui se fait hacker...Un petit tuto?...
Je suis un peu overbooké et je n'ai plus le gpg en tête, un de ces jours j'y penserai
Et pour finir le tout, Je fais un md5 des fichiers de sauvegardes sur chacun des serveurs, et je les compare pour voir si le transfert rsync c'est bien passé (il y a donc aussi un rsync des md5). Mine de rien, cette vérif m'a fait prendre conscience de problèmes pontuelles parfois difficilement détectables (FS full, défaillance de la rotation des sauvegardes... ).
[--Eric--] a écrit:Oui bonne idée en effet de crypter car avoir une sauvegarde sur un serveur qui se fait hacker...Un petit tuto?...
![]()
Sinon pour le code plus haut il y a une petite coquille :
- Code: Tout sélectionner
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActueldd/www.tar /var/www/*
a corriger par
- Code: Tout sélectionner
echo - Package de /var/www/ en $repTravailActuel/www.tar
tar -cf $repTravailActuel/www.tar /var/www/*
héhé merci corrigé
Topsitemaker a écrit:[--Eric--] a écrit:Oui bonne idée en effet de crypter car avoir une sauvegarde sur un serveur qui se fait hacker...Un petit tuto?...
Je suis un peu overbooké et je n'ai plus le gpg en tête, un de ces jours j'y penserai![]()
Et pour finir le tout, Je fais un md5 des fichiers de sauvegardes sur chacun des serveurs, et je les compare pour voir si le transfert rsync c'est bien passé (il y a donc aussi un rsync des md5). Mine de rien, cette vérif m'a fait prendre conscience de problèmes pontuelles parfois difficilement détectables (FS full, défaillance de la rotation des sauvegardes... ).
Je serais également intéressé par un petit tuto permettant de crypter ses sauvegardes
[edit] En cherchant un peu j'ai trouvé ce tuto (en anglais) qui m'a l'air trés clair : http://www.somacon.com/p107.php
Ici il y a un script de sauvegarde de bdd qui crypte avec GnuPG :
http://forum.sivit.fr/viewtopic.php?id=2983&forum=3&29
Pour ceux veulent un serveur de sauvegarde à moindre coût, vous pouvez utiliser votre ordinateur et rsync. Avec Windows il faut installer cwRsync.
J’ai trouvé cette astuce ici :
http://yann.morere.free.fr/article.php3 ... 4#tth_sEc6
http://forum.sivit.fr/viewtopic.php?id=2983&forum=3&29
Pour ceux veulent un serveur de sauvegarde à moindre coût, vous pouvez utiliser votre ordinateur et rsync. Avec Windows il faut installer cwRsync.
J’ai trouvé cette astuce ici :
http://yann.morere.free.fr/article.php3 ... 4#tth_sEc6
21 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Changer d'hébergeur web sans pénaliser son référencement
- Les albums web Picasa passent à 1 Go de stockage
- Ajouter un Gadget Google sur son site
- Photos satellite des incendies en Grèce dans Google Earth
- WebRankInfo analyse le logiciel AgentWebRanking
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Google Desktop pour Mac OS X
- Carte du Tour de France 2008 dans Google Earth
- Picasa Web Albums en français
- Web Rank Info ouvre un forum dédié à MSN Search
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités







le forum