Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
fr:sauver_serveur [2016/09/14 09:04] – modification externe 127.0.0.1 | fr:sauver_serveur [2022/04/25 11:20] (Version actuelle) – [Sauvegarde des bases mysql via un script] Obsolète ou pas zatalyz | ||
---|---|---|---|
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 de cron, le 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' | + | <WRAP center round alert 60%> |
+ | Cette partie est probablement en partie obsolète. Ne copiez pas bêtement, lisez tout soigneusement, utilisez | ||
+ | </ | ||
- | 30 0 * * * / | + | '' |
- | 30 1 * * * / | + | |
- | + | ||
- | '' | + | |
- | <code bash># | + | |
+ | <code bash backupmysql.sh># | ||
+ | # Variable pour avoir la date du jour | ||
TODAY=$(date +%Y-%m-%d) | TODAY=$(date +%Y-%m-%d) | ||
- | / | + | # Sauvegarde des tables |
- | / | + | / |
- | / | + | / |
- | / | + | / |
+ | / | ||
+ | |||
+ | # Nettoie le dossier " | ||
+ | |||
+ | # On se fait une jolie variable qui imite le nom des fichiers de sauvegarde, avec leur chemin complet, pour éviter d' | ||
+ | mysqldump='/ | ||
+ | |||
+ | # On efface celles ayant plus de 15 jours | ||
+ | find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \; | ||
</ | </ | ||
- | Adaptez ce script à vos propres besoins. | + | 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. |
- | <code bash># | ||
- | |||
- | #Nettoie le dossier " | ||
- | #On se fait une jolie variable qui imite le nom des fichiers | + | Exemple de cron : le script |
- | mysqldump='/ | + | |
- | #On efface ceux ayant plus de 15 jours | + | 30 0 * * * /home/user/ |
- | find $mysqldump -type f -mtime +15 -exec /bin/rm -f {} \; | + | |
- | </ | + | <WRAP center round todo 100%> |
+ | Le fonctionnement de Mariadb a changé, et il semblerait qu'il faille changer le script de la façon suivante, en le lançant en root : | ||
+ | < | ||
+ | Crontab associé (depuis l'user root, donc) : | ||
+ | < | ||
+ | 00 1 * * * / | ||
+ | Vérifier soigneusement avant de faire confiance... | ||
+ | </ | ||
+ | |||
+ | |||
===== 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 75: | ||
<code script.sh bash># | <code script.sh bash># | ||
- | for var in $(cat / | + | for var in $(cat / |
</ | </ | ||
Ligne 109: | Ligne 127: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | Pour que ces scripts fonctionnent, | + | Pour que ces scripts fonctionnent, |
</ | </ | ||
Ligne 124: | Ligne 142: | ||
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> |