Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
fr:sauver_serveur [2016/05/27 16:28] – créée zatalyz | fr: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 | + | Il peut arriver |
- | Pour que les sauvegardes servent à quelque chose, il faut qu' | + | <WRAP center round todo 60%> |
+ | Cet article aurait besoin d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour que les sauvegardes servent à quelque chose, il faut qu' | ||
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 | + | 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 |
- | Exemple | + | '' |
- | 30 0 * * * / | ||
- | 30 1 * * * / | ||
- | |||
- | '' | ||
<code bash># | <code bash># | ||
+ | # Variable pour avoir la date du jour | ||
TODAY=$(date +%Y-%m-%d) | TODAY=$(date +%Y-%m-%d) | ||
- | / | + | # Sauvegarde des tables |
- | / | + | / |
- | / | + | / |
- | / | + | / |
- | </ | + | / |
- | Adaptez ce script à vos propres besoins. S' | + | # Nettoie le dossier " |
- | + | ||
- | '' | + | |
- | + | ||
- | <code bash># | + | |
- | + | ||
- | #Nettoie le dossier " | + | |
- | #On se fait une jolie variable qui imite le nom des fichiers de sauvegarde, avec leur chemin complet, pour éviter d' | + | # On se fait une jolie variable qui imite le nom des fichiers de sauvegarde, avec leur chemin complet, pour éviter d' |
mysqldump='/ | mysqldump='/ | ||
- | #On efface | + | # On efface |
find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \; | find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \; | ||
- | |||
</ | </ | ||
+ | S' | ||
+ | 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' | ||
+ | |||
+ | 30 0 * * * / | ||
+ | |||
===== 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># | <code script.sh bash># | ||
- | for var in $(cat / | + | for var in $(cat / |
</ | </ | ||
Ligne 109: | Ligne 111: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Pour que ces scripts fonctionnent, | + | Pour que ces scripts fonctionnent, |
</ | </ | ||
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, | ||
+ | |||
+ | ssh-keygen -t rsa | ||
+ | |||
+ | Puis copier cette clé sur le serveur qui a les sauvegardes, | ||
+ | ssh-copy-id -i ~/ | ||
+ | |||
+ | Comme ça peut durer un moment ces trucs, protéger un peu l' | ||
+ | nano .ssh/ | ||
+ | |||
+ | S' | ||
+ | |||
+ | Et ajouter l'ip devant la clé de " | ||
+ | from=" | ||
+ | |||
+ | Ensuite, on fait un cd pour se placer là où on veut récupérer les données sauvées, puis un rsync : | ||
+ | cd / | ||
+ | rsync -av moncomptedesauvegarde@serveursauvegarde.com:/ | ||
+ | |||
+ | * -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 | ||
+ | * :/ | ||
+ | * . : à copier dans le dossier courant | ||
+ | * 2>&1 > rsynctrace.txt : va faire un fichier de " | ||
+ | |||
+ | ==== 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' | ||
+ | </ | ||
+ | |||
+ | J'ai eu un souci pour faire rsync vers mon serveur perso, ce dernier ayant un port non standard pour ssh. | ||
+ | |||
+ | Du coup, j' | ||
+ | ssh-copy-id -i ~/ | ||
+ | |||
+ | Pour rsync : | ||
+ | rsync -av ./ | ||
+ | Donc : du dossier vers le serveur. Tout simple. | ||
- | {{tag> | + | {{tag> |