Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
fr:sauver_serveur [2016/05/27 16:28] – créée zatalyzfr:sauver_serveur [2021/12/03 19:19] – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Processus de sauvegarde sur un serveur======+====== Processus de sauvegarde sur un serveur ======
  
-Il peut arriver pleins de choses à un ordinateur, d'autant plus s'il est en ligne, donc : sauvegardez, sauvegardez !+Il peut arriver plein de choses à un ordinateur, d'autant plus s'il est en ligne, donc : sauvegardez, sauvegardez !
  
-Pour que les sauvegardes servent à quelque chose, il faut qu'elles soient fonctionnelles, régulières, et placés en divers lieux physiques. Au minimum, envoyez les sauvegardes de votre serveur sur votre propre ordinateur ; dans l'absolu, c'est plus pratique d'avoir un second serveur en ligne dédié à la sauvegarde+un ordinateur personnel qui duplique les données. Trois endroits où avoir les données, ce n'est pas trop.+<WRAP center round todo 60%> 
 +Cet article aurait besoin d'être dépoussiéré, certaines de ses informations, sans être fausses, ne sont pas forcément des plus pertinentes. Utilisez votre esprit critique si vous l'utilisez pour vos besoins, et participez à son amélioration. 
 +</WRAP> 
 + 
 + 
 +Pour que les sauvegardes servent à quelque chose, il faut qu'elles soient fonctionnelles, régulières, et placés en divers lieux physiques, mais aussi il faut tester régulièrement une récupération des données : un backup qui ne fonctionne pas, ça n'intéresse personne. Au minimum, envoyez les sauvegardes de votre serveur sur votre propre ordinateur ; dans l'absolu, c'est plus pratique d'avoir un second serveur en ligne dédié à la sauvegarde + un ordinateur personnel qui duplique les données. Trois endroits où avoir les données, ce n'est pas trop.
  
 Pensez que votre serveur peut être piraté... mais aussi que le disque dur peut lâcher brusquement ou disparaître dans un incendie. Dans ce cas, comment remettrez-vous les données en ligne ? Pensez que votre serveur peut être piraté... mais aussi que le disque dur peut lâcher brusquement ou disparaître dans un incendie. Dans ce cas, comment remettrez-vous les données en ligne ?
Ligne 15: Ligne 20:
  
 ===== Sauvegarde des bases mysql via un script ===== ===== Sauvegarde des bases mysql via un script =====
-Un certain nombre de CMS passent par des bases de données type mysql. Vous pouvez sauvegarder toutes ces bases en un script, lancé à intervalle régulière via cron. +Un certain nombre de CMS passent par des bases de données type mysql. Vous pouvez sauvegarder toutes ces bases en un script, lancé à intervalle régulier via cron. 
  
-Exemple de cronle premier script se lançant tous les jours à 00H30, le second à 1H30((Il vaut mieux lancer les scripts de sauvegarde au moment où vos utilisateurs ont peu de chance d'être en lignecar ils peuvent consommer pas mal de ressources.)) +''backupmysql.sh'' se charge de sauvegarderde façon séparéechacune des tables utiles, tout en incrémentant le nom du fichier de sauvegarde avec la date du jour. En bonus, la sauvegarde d'un annuaire LDAP (adaptez à vos besoins !). Puis il supprime les plus anciennes sauvegardessinon ça devient le bazar et ça prend de la place :
  
-  30 0 * * * /home/user/backup/backup.sh 
-  30 1 * * * /home/user/backup/balai.sh 
-  
-''backup.sh'' se charge de sauvegarder, de façon séparé, chacune des tables utiles, tout en les incrémentant avec la date du jour. En bonus, la sauvegarde d'un annuaire LDAP à la fin : 
 <code bash>#!/bin/bash <code bash>#!/bin/bash
 +# Variable pour avoir la date du jour 
 TODAY=$(date +%Y-%m-%d) TODAY=$(date +%Y-%m-%d)
  
-/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt etherpad > /home/user/backup/$TODAY-etherpad-mysqldump.sql +# Sauvegarde des tables 
-/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt smf > /home/user/backup/$TODAY-smf-mysqldump.sql +/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt etherpad > /home/user/mysqlbackup/$TODAY-etherpad-mysqldump.sql 
-/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt teampass > /home/user/backup/$TODAY-teampass-mysqldump.sql +/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt smf > /home/user/mysqlbackup/$TODAY-smf-mysqldump.sql 
-/usr/bin/ldapsearch -xLLL -D "cn=admin,dc=monserveur,dc=net" -w $(cat /home/user/.ldapassword) > /home/user/backup/$TODAY-exportKLDAP.ldif +/usr/bin/mysqldump -u root -p$(cat /home/user/.password) --opt teampass > /home/user/mysqlbackup/$TODAY-teampass-mysqldump.sql 
-</code>+/usr/bin/ldapsearch -xLLL -D "cn=admin,dc=monserveur,dc=net" -w $(cat /home/user/.ldapassword) > /home/user/mysqlbackup/$TODAY-exportKLDAP.ldif
  
-Adaptez ce script à vos propres besoins. S'assurer que les fichiers ''/home/user/.password'' et ''/home/user/.ldapassword'' contiennent bien le mot de passe de root (mysql et ldap)... et que les droits sont donnés, en lecture, uniquement à l'utilisateur qui va lancer le script. +# Nettoie le dossier "Backup" régulièrement, afin qu'il ne prenne pas trop de place.
- +
-''balai.sh'' vire les plus anciennes sauvegardes, sinon ça devient le bazar et ça prend de la place : +
- +
-<code bash>#!/bin/bash +
-  +
-#Nettoie le dossier "Backup" régulièrement, afin qu'il ne prenne pas trop de place.+
  
-#On se fait une jolie variable qui imite le nom des fichiers de sauvegarde, avec leur chemin complet, pour éviter d'effacer n'importe quoi+# On se fait une jolie variable qui imite le nom des fichiers de sauvegarde, avec leur chemin complet, pour éviter d'effacer n'importe quoi
 mysqldump='/home/user/backup/*mysqldump.sql*' mysqldump='/home/user/backup/*mysqldump.sql*'
  
-#On efface ceux ayant plus de 15 jours+# On efface celles ayant plus de 15 jours
 find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \; find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \;
- 
 </code> </code>
  
 +S'assurer que les fichiers ''/home/user/.password'' et ''/home/user/.ldapassword'' contiennent bien le mot de passe de root (mysql et ldap)... et que les droits sont donnés, en lecture, uniquement à l'utilisateur qui va lancer le script.
  
 +Avant de lancer le script, vérifier que les dossiers existent, l'user est le bon, puis testez, avant de mettre le cron en place.
 +
 +
 +Exemple de cron :le script se lance tous les jours à 00H30((Il vaut mieux lancer les scripts de sauvegarde au moment où vos utilisateurs ont peu de chance d'être en ligne, car ils peuvent consommer pas mal de ressources.)) : 
 +
 +  30 0 * * * /home/user/backup/backupmysql.sh
 + 
 ===== Rsync sur les données vers un serveur distant ===== ===== Rsync sur les données vers un serveur distant =====
 ==== Copie des données distantes ==== ==== Copie des données distantes ====
Ligne 57: Ligne 59:
 <code script.sh bash>#!/bin/bash <code script.sh bash>#!/bin/bash
  
-for var in $(cat /home/user/sav/backup); do  rsync -av utilisateur@monserveur.net:$var /home/user/sav/vps; done > /home/user/sav/vps$(date +%Y-%m-%d)-svg.log 2> /home/user/sav/vps$(date +%Y-%m-%d)-err.log+for var in $(cat /home/user/sav/backup); do  rsync -av --delete-after utilisateur@monserveur.net:$var /home/user/sav/vps; done > /home/user/sav/vps$(date +%Y-%m-%d)-svg.log 2> /home/user/sav/vps$(date +%Y-%m-%d)-err.log
 </code> </code>
  
Ligne 109: Ligne 111:
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-Pour que ces scripts fonctionnent, il faut avoir donné le droit à votre serveur de sauvegarde de se connecter au serveur à sauvegarder sans mot de passe ; voir [[fr:connexion_serveur_admin]]+Pour que ces scripts fonctionnent, il faut avoir donné le droit à votre serveur de sauvegarde de se connecter au serveur à sauvegarder sans mot de passe ; voir [[fr:ssh#se_connecter_sans_mot_de_passe_methode_non_securisee]]
 </WRAP> </WRAP>
  
Ligne 124: Ligne 126:
   iptables-saves > 2016-02-17-iptables-saves   iptables-saves > 2016-02-17-iptables-saves
  
 +===== Pouvoir récupérer des données sur un autre serveur =====
 +Lors d'une réinstallation, il faut aller chercher ce qu'on a sauvé. Après avoir préparé [[fr:1eres_etapes_serveur|les éléments de base du serveur]], générez une clé rsa depuis votre utilisateur lambda (pas en root), sans mot de passe((C'est le temps de prendre les infos, ça va pas durer. Cette clé est à détruire ensuite !)).
 +
 +  ssh-keygen -t rsa
 + 
 +Puis copier cette clé sur le serveur qui a les sauvegardes, sur le bon utilisateur
 +  ssh-copy-id -i ~/.ssh/id_rsa.pub moncomptedesauvegarde@serveursauvegarde.com
 + 
 +Comme ça peut durer un moment ces trucs, protéger un peu l'accès sur le serveur de sauvegarde :
 +  nano .ssh/authorized_keys
 +
 +S'assurer au passage que l'utilisateur //moncomptedesauvegarde// a bien les droits sur le dossier qu'on va récupérer.
 +
 +Et ajouter l'ip devant la clé de "lambda"
 +  from="ip du nouveau serveur" ssh-rsa XXXYYYZZZ(clé) lambda@nouveauserveur.net
 +
 +Ensuite, on fait un cd pour se placer là où on veut récupérer les données sauvées, puis un rsync :
 +  cd /var/www/oldsave
 +  rsync -av moncomptedesauvegarde@serveursauvegarde.com:/repertoire . 2>&1 > rsynctrace.txt
 +
 +  * -av signifie 
 +    * -a ou --archive : raccourci pour la récursivité et préserver les droits etc. 
 +    * -v : verbose, avec des détails.
 +    * moncomptedesauvegarde@serveursauvegarde.com : à adapter pour se connecter au serveur de sauvegarde
 +    * :/répertoire : le chemin, depuis la racine, du répertoire qu'on veut copier. 
 +    * . : à copier dans le dossier courant
 +    * 2>&1 > rsynctrace.txt : va faire un fichier de "log" avec ce que fait rsync, c'est plus facile à consulter qu'en console et on garde trace de tout souci rencontré.
 +
 +==== Dans le sens inverse ====
 +
 +<WRAP center round important 60%>
 +Je garde la démarche ci-dessous "au cas où" mais ça va bien plus vite de récupérer depuis un serveur de sauvegarde en ligne. Je laisse l'aspect "notes", flemme de trop corriger.
 +</WRAP>
 +
 +J'ai eu un souci pour faire rsync vers mon serveur perso, ce dernier ayant un port non standard pour ssh. 
 +
 +Du coup, j'envoie depuis mon serveur vers le nouveau serveur
 +  ssh-copy-id -i ~/.ssh/id_rsa.pub lambda@vpstests.khaganat.net
 +
 +Pour rsync :
 +  rsync -av ./www/accueil lambda@vpstests.khaganat.net:/var/www/html
  
 +Donc : du dossier vers le serveur. Tout simple.
  
-{{tag>Web Serveur Tutoriel}}+{{tag>Web Serveur Tutoriel Obsolète}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/sauver_serveur.txt · Dernière modification : 2022/04/25 11:20 de zatalyz

Licences Mentions légales Accueil du site Contact