[Article] [beta]Sauvegarder un dédié part II
35 messages • Page 1 sur 3 • 1, 2, 3
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
[Article] [beta]Sauvegarder un dédié part II
Bonjour a tous,
Je vous avais déja parlé d'une méthode pour sauvegarder son serveur ici
Je vais vous parler d'une autre méthode, en utilisant le logiciel RSYNC
Attention, si vous êtes débutant attendez que quelqu'un qui maitrise est bien validé cet article ^^
Je vais prendre ici un exemple d'un serveur linux ou unix vers un autre serveur linux ou unix (GNU linux, freebsd, openbsd..) ...
Personnellement mon pc de bureau tourne sous linux et mon serveur aussi, donc je backup directement sur mon pc de bureau, mais on peut très bien imaginer un deuxième serveur en datacenter ou un serveur a la maison comme kazhar l'as fait.
Personnellement je backup /home, /etc, /root et /var, a vous de choisir
J'ai pris l'habitude de faire un backup des tables mysql avant histoire d'avoir quelque chose de plus simple en cas de crash...
Pour ce script c'est vraiment quelque chose de "basique" mais quand même sécurisé car passant par une connexion SSH ...
Pour la rédaction on dira que le serveur a sauvegarder est le 'serveur client' et le serveur sur lequel seront stockés les backup est le 'serveur de backup'
Le script :
Le script a besoin d'un accès SSH sur le serveur de backup pour pouvoir y copier les fichiers, le script sera executer via "cron" en root pour être sur de tout copier
Sur le serveur client
Les commandes doivent être exécutées en root
Sur le serveur client on va générer une paire de clé pour pouvoir avoir un accès SSH sans avoir a taper de mot de passe ...
Ne rien mettre en passphrase
Puis on copie la clé publique sur le serveur de backup (penser a remplacer "user" et "ip.du.serveur" par les bonnes valeurs :
On se place dans le repertoire /home/root
On va creer le script
Une fois dans vim on copie le texte
On tappe
Puis i pour insertion
En on peut coller le texte (en ayant tout bien rempli
)
On enregistre et on quitte :
On rend éxécutable le script
Pour plus de sécurité :
Vous pouvez exécuter le fichier avec la commande
Ca marche ? bon ben on continue maintenant , on va exécuter le script tout les jours avec cron
Attention, si un fichier a été supprimé du disque dur sur serveur client il sera supprimé du disque du serveur de backup a la prochaine sauvegarde (grâce a l'option --delete)
Et ajouter cette ligne
Le script s'exécutera tout les matins a 4h30
Pour ceux qui veulent comprendre comment ca marche : http://fr.wikipedia.org/wiki/Crontab
N'hésitez pas a poser des question ou des remarques
Ron[/code]
Je vous avais déja parlé d'une méthode pour sauvegarder son serveur ici
Je vais vous parler d'une autre méthode, en utilisant le logiciel RSYNC
Attention, si vous êtes débutant attendez que quelqu'un qui maitrise est bien validé cet article ^^
Wikipédia a écrit:rsync (remote synchronization, synchronisation distante) est un logiciel de synchronisation de fichiers, distribué sous licence GPL. La synchronisation est unidirectionnelle, c'est-à-dire qu'elle copie les fichiers de la source en direction de la destination. rsync est donc utilisé pour réaliser des sauvegardes incrémentales ou pour diffuser le contenu d'un répertoire de référence.
rsync fonctionne sur un large spectre de systèmes d'exploitation (Microsoft Windows, Linux, Mac OS X), permettant ainsi de synchroniser des fichiers de différents systèmes d'exploitation.
Je vais prendre ici un exemple d'un serveur linux ou unix vers un autre serveur linux ou unix (GNU linux, freebsd, openbsd..) ...
Personnellement mon pc de bureau tourne sous linux et mon serveur aussi, donc je backup directement sur mon pc de bureau, mais on peut très bien imaginer un deuxième serveur en datacenter ou un serveur a la maison comme kazhar l'as fait.
Personnellement je backup /home, /etc, /root et /var, a vous de choisir
J'ai pris l'habitude de faire un backup des tables mysql avant histoire d'avoir quelque chose de plus simple en cas de crash...
Pour ce script c'est vraiment quelque chose de "basique" mais quand même sécurisé car passant par une connexion SSH ...
Pour la rédaction on dira que le serveur a sauvegarder est le 'serveur client' et le serveur sur lequel seront stockés les backup est le 'serveur de backup'
Le script :
- Code: Tout sélectionner
#!/bin/bash
echo Script de sauvegarde ...
#
# Sauvegarde via rsync
# Fontenay Ronan
###### Debut Initialisation ######
### DEBUT des Parametres concernant le backup de mysql ###
#user mysql :
strMysqlUser=""
#mot de passe mysql de l'user:
strPassword=""
#dossier sur le serveur client ou l'ont stocke les sauvegarde des bases de donn�es avant de tout transferer sur le serveur de backup
#ex : /home/root/mysql/
#/!\ Penser a mettre un slash de chaque cot
bkpmysql=""
### FIN des Parametres concernant le backup de mysql ###
### DEBUT des Parametres concernant le transfert via rsync ###
# IP ou Domaine du serveur de backup
# exemple adresse = "****.dyndns.org"
adresse=""
# utilisateur pour la connexion SSH sur le serveur de backup
#ex user="toto"
user=""
#Dossier sur le serveur de backup dans lequel on va copier les sauvegardes
#ex: repbkp="/home/toto/backup-serveur/"
#/!\ Penser a mettre un slash de chaque cot
repbkp=""
### FIN des Parametres concernant le transfert via rsync ###
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 $bkpmysql
mysqldump --user="$strMysqlUser" --password="$strPassword" "$lineDatabase" | gzip > "$bkpmysql""$lineDatabase".sql.gz
echo Dump compressé dans $bkpmysql$lineDatabase.sql.gz
echo -----------------------------------------------------
done
echo - Transfert via Rsync
rsync -arz --stats --progress --delete --force --ignore-errors /home $user@$adresse:$repbkp
rsync -arz --stats --progress --delete --force --ignore-errors /var $user@$adresse:$repbkp
rsync -arz --stats --progress --delete --force --ignore-errors /etc $user@$adresse:$repbkp
rsync -arz --stats --progress --delete --force --ignore-errors /root $user@$adresse:$repbkp
echo Fin de la sauvegarde
exit 0
Le script a besoin d'un accès SSH sur le serveur de backup pour pouvoir y copier les fichiers, le script sera executer via "cron" en root pour être sur de tout copier
Sur le serveur client
Les commandes doivent être exécutées en root
Sur le serveur client on va générer une paire de clé pour pouvoir avoir un accès SSH sans avoir a taper de mot de passe ...
- Code: Tout sélectionner
ssh-keygen -t dsa -b 1024
Ne rien mettre en passphrase
Puis on copie la clé publique sur le serveur de backup (penser a remplacer "user" et "ip.du.serveur" par les bonnes valeurs :
- Code: Tout sélectionner
ssh-copy-id -i ~/.ssh/id_dsa.pub user@ip.du.serveur
On se place dans le repertoire /home/root
- Code: Tout sélectionner
cd /root/
On va creer le script
- Code: Tout sélectionner
vim backup.sh
Une fois dans vim on copie le texte
On tappe
- Code: Tout sélectionner
:set paste
Puis i pour insertion
- Code: Tout sélectionner
i
En on peut coller le texte (en ayant tout bien rempli
- Code: Tout sélectionner
Ctrl + v
On enregistre et on quitte :
- Code: Tout sélectionner
:wq
On rend éxécutable le script
- Code: Tout sélectionner
chmod +x sauvegarde.sh
Pour plus de sécurité :
- Code: Tout sélectionner
chmod 640 sauvegarde.sh
Vous pouvez exécuter le fichier avec la commande
- Code: Tout sélectionner
./sauvegarde.sh
Ca marche ? bon ben on continue maintenant , on va exécuter le script tout les jours avec cron
Attention, si un fichier a été supprimé du disque dur sur serveur client il sera supprimé du disque du serveur de backup a la prochaine sauvegarde (grâce a l'option --delete)
- Code: Tout sélectionner
vim /etc/crontab
Et ajouter cette ligne
- Code: Tout sélectionner
30 04 * * * root cd /root && ./sauvegarde
Le script s'exécutera tout les matins a 4h30
Pour ceux qui veulent comprendre comment ca marche : http://fr.wikipedia.org/wiki/Crontab
N'hésitez pas a poser des question ou des remarques
Ron[/code]
Dernière édition par Ron56 le Ven Juin 13, 2008 15:59, édité 4 fois.
kazhar a écrit:En quoi le transfert via rsync est-il mieux qu'un transfert par ftp ?
nb : le lien vers mon profil ne fonctionne pas
Corrigé pour les liens
Effectivement je n'ai pas dit pourquoi c'était plus intéressant via rsync
En fait rsync va juste transférer sur le serveur de backup les fichiers/dossiers qui ont été ajoutés/modifiés et il va aussi supprimé du serveur de backup les fichier qui ont été supprimés du serveur client depuis la dernière sauvegarde...
Ensuite c'est quand même bien sécurisé car via ssh ...
Ok
Seconde question. Tu dit ici donc que cela va supprimer les anciens fichiers. Super.
Seulement si je veux faire de l'incrémental un peu poussé :
- Conserver les deux dernières sauvegardes
- Conserver la dernière sauvegarde des dimanches sur les 4 dernières semaines
C'est pas possible ou on peut trifouiller ? :p
P.S. : oui je suis parano et chiant
Seconde question. Tu dit ici donc que cela va supprimer les anciens fichiers. Super.
Seulement si je veux faire de l'incrémental un peu poussé :
- Conserver les deux dernières sauvegardes
- Conserver la dernière sauvegarde des dimanches sur les 4 dernières semaines
C'est pas possible ou on peut trifouiller ? :p
P.S. : oui je suis parano et chiant
Conserver les deux dernières sauvegardes
c'est tout a fait fesable en utilisant le même principe que le backup ftp
Par exemple on pourrait remplacer ( a tester
)
Par
Ainsi dans home/ron/home/toto/backup-serveur/ j'aurai des dossiers avec les dates et dans ces dossiers j'aurai les sauvegardes ...
Conserver la dernière sauvegarde des dimanches sur les 4 dernières semaines
Deux méthodes possibles :
Première méthode (celle que j'adopterai) :
Dans le script exécuté tout les jours tu détecte si on est dimanche , si oui tu exécute un autre script qui est le même que celui que je présente ici a deux différences près :
-il sauvegardera dans un autre repertoire sur le serveur de backup
-il supprimera le backup vieux de un mois uniquement
Seconde méthode :
Un script sur ton serveur de backup exécuté uniquement le dimanche 2h après le backup et qui copie la sauvegarde dans un autre répertoire et supprimera le backup vieux de un mois
A mon avis moins bien car si tu a un problème de synchro entre les deux serveurs :s
c'est tout a fait fesable en utilisant le même principe que le backup ftp
Par exemple on pourrait remplacer ( a tester
- Code: Tout sélectionner
repbkp=""
Par
- Code: Tout sélectionner
#repertoire ou seront stockées les sauvegardes
#ex : $repTravail="/home/ron/home/toto/backup-serveur/"
$repTravail=""
dateActuelle=$(date +%d%m%Y)
datePassee=$(date --date '2 days ago' +%d%m%Y)
repbkp=$repTravail$dateActuelle
echo - Suppression du repertoire $repTravail$datePassee
rm -rf $repTravail$datePassee
Ainsi dans home/ron/home/toto/backup-serveur/ j'aurai des dossiers avec les dates et dans ces dossiers j'aurai les sauvegardes ...
Conserver la dernière sauvegarde des dimanches sur les 4 dernières semaines
Deux méthodes possibles :
Première méthode (celle que j'adopterai) :
Dans le script exécuté tout les jours tu détecte si on est dimanche , si oui tu exécute un autre script qui est le même que celui que je présente ici a deux différences près :
-il sauvegardera dans un autre repertoire sur le serveur de backup
-il supprimera le backup vieux de un mois uniquement
Seconde méthode :
Un script sur ton serveur de backup exécuté uniquement le dimanche 2h après le backup et qui copie la sauvegarde dans un autre répertoire et supprimera le backup vieux de un mois
A mon avis moins bien car si tu a un problème de synchro entre les deux serveurs :s
BackupPC
Bonsoir,
dans le même ordre d'idée, vous pouvez aussi utiliser BackupPC (http://backuppc.sourceforge.net/).
Il s'agit d'une collection de script perl qui permet de faire des copies de sauvegarde via tar, rsync et ssh.
Un fichier de configuration permet de personnaliser les copies de sauvegarde, la fréquences, le nombre de copie incrémentielle à conserver, etc.
Ce système possède une interface web pour gérer les sauvegardes. Il s'installe facilement sur un système Debian/Ubuntu.
C'est ce que j'utilise pour backupper mes serveurs dédiés et virtuel dédié.
Bruno
dans le même ordre d'idée, vous pouvez aussi utiliser BackupPC (http://backuppc.sourceforge.net/).
Il s'agit d'une collection de script perl qui permet de faire des copies de sauvegarde via tar, rsync et ssh.
Un fichier de configuration permet de personnaliser les copies de sauvegarde, la fréquences, le nombre de copie incrémentielle à conserver, etc.
Ce système possède une interface web pour gérer les sauvegardes. Il s'installe facilement sur un système Debian/Ubuntu.
C'est ce que j'utilise pour backupper mes serveurs dédiés et virtuel dédié.
Bruno
kazhar a écrit:Seulement si je veux faire de l'incrémental un peu poussé :
- Conserver les deux dernières sauvegardes
- Conserver la dernière sauvegarde des dimanches sur les 4 dernières semaines
C'est pas possible ou on peut trifouiller ? :p
P.S. : oui je suis parano et chiant
http://www.webrankinfo.com/forums/topic ... 864_16.htm
En espérant que ça réponde à ta question
-

mahefarivony - WRInaute accro

- Messages: 11405
- Inscription: Lun Oct 14, 2002 10:00
Euh, hum, vu que c'est le bazar sur mon dédié, vais me contenter des 5€ que sivit me réclame tous les mois pour faire le job de backup
Mais merci pour l'article, ça peut toujours servir !
Mais merci pour l'article, ça peut toujours servir !
mahefarivony a écrit:Euh, hum, vu que c'est le bazar sur mon dédié, vais me contenter des 5€ que sivit me réclame tous les mois pour faire le job de backup
Mais merci pour l'article, ça peut toujours servir !
C'est du rsync chez Sivit
-

mahefarivony - WRInaute accro

- Messages: 11405
- Inscription: Lun Oct 14, 2002 10:00
et d'ailleurs au passage, pour en revenir à l'article, il y a pas un démon rsyncd à lancer sur le serveur client ? Chez moi le backup sivit gueule quand ce démon n'est pas lancé
35 messages • Page 1 sur 3 • 1, 2, 3
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 :
- Web Rank Info ouvre un forum dédié à MSN Search
- Google Toolbar 2.0 (version beta)
- Google News sort de sa version bêta
- Google Chrome : nouvelle version beta plus rapide
- Sortie des Google Groups 2
- Google AdWords Editor
- Alexa se met à la recherche avec Google
- Lancement de Wikio
- Windows Live Toolbar Beta
- Nouveau Picasa : Picasa Web Albums
Consultez la description détaillée des produits ou services de Google suivants : Google PageRank, Google AdWords Editor, Google Trends, Google Automat
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités











le forum