# \[Résolu\] Script de sauvegarde / restauration MYSQL

**URL:** <https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426>\
**Category:** Programmation\
**Created:** [Mai 1, 2016, 11:40 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426 "2016-05-01T11:40:11Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Mai 1, 2016, 11:40 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/1 "2016-05-01T11:40:12Z")

</div>

Bonjour,

J’aimerais que vous me portiez assistance pour création d’un petit script de sauvegarde de tout le contenue de ma base MYSQL et un script de restauration.

J’ai trouvé des scripts sur internet et sur des forums, mais n’étant pas impliqué dans le sujet, je n’est pas eut raiponce à mes questions.

Mon objectif serait que ma base de données soit sauvegardée sur un fichier dans un chemin réseau bien précis.

Actuellement je fais mes sauvegardes à la main (tous les soirs quand je suis disponible,) ce qui demande une présence humaine et je voudrais automatiser tout cella.

Pouvez vous m’aider s’il vous plait ?

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mai 1, 2016, 12:07 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/2 "2016-05-01T12:07:01Z")

</div>

> [@fabdunet1313](#):
>
> Bonjour,
> 
> J’aimerais que vous me portiez assistance pour création d’un petit script de sauvegarde de tout le contenue de ma base MYSQL et un script de restauration.
> 
> J’ai trouvé des scripts sur internet et sur des forums, mais n’étant pas impliqué dans le sujet, je n’est pas eut raiponce à mes questions.
> 
> Mon objectif serait que ma base de données soit sauvegardée sur un fichier dans un chemin réseau bien précis.
> 
> Actuellement je fais mes sauvegardes à la main (tous les soirs quand je suis disponible,) ce qui demande une présence humaine et je voudrais automatiser tout cella.
> 
> Pouvez vous m’aider s’il vous plait ?

Une tâche cron avec ta commande ne suffit pas ?

Concernant la restauration c’est tout de même moins évident de faire un script léger qui permettra d’être passe partout.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Mai 1, 2016, 12:29 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/3 "2016-05-01T12:29:35Z")

</div>

Oui, justement je voulais faire un script qui tourne avec un crontab

J’ai trouver ce script :

> ```
> #!/bin/sh
> 
> ```

> ```
> # A PARAMETRER : le repertoire de base de mon appli web
> # l'utilisateur / mot de passe MySQL ainsi que le nom de la base
> # le chemin de sauvegarde
> APPLI_HOME="/var/www/glpi"
> USER=root
> PASS=chaduhiti
> BASE_SQL=glpi
> BACKUP=/root/sauvegarde
> 
> ```

> ```
> # on dumpe la base MySQL dans un fichier temporaire
> mysqldump --opt -u $USER -p$PASS $BASE_SQL > /tmp/dumpbase.sql
> 
> ```

> ```
> # on archive l'application ainsi que le fichier de dump MySQL dans le 
> # repertoire de sauvegarde
> tar -cPhzf $BACKUP/glpi-`date +%d%m%Y`-`date +%H%M`.tar.gz $APPLI_HOME /tmp/dumpbase.sql
> 
> ```

> ```
> # on supprime le dump MySQL
> rm -f /tmp/dumpbase.sql
> 
> ```

ma question est comment faire l’opération inverse ci il fonctionne ??  
le problème de ce script, c’est qu’il sauvegarde une base en particulier, moi je voudrais tout prendre

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Mai 1, 2016, 12:50 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/4 "2016-05-01T12:50:08Z")

</div>

J’ai adapté mon script, il fonctionne correctement, mais comment faire l’opération inverse ?

---

<div class="post-metadata">

**Author:** ![PengouinPdt](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pengouinpdt/32/3978_2.png) [@PengouinPdt](https://www.debian-fr.org/u/PengouinPdt)\
**Post date:** [Mai 1, 2016, 1:20 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/5 "2016-05-01T13:20:06Z")

</div>

De base : `mysql --opt -u $USER -p$PASS < /dir/file.sql`

En spécifiant une DB : `mysql --opt -u $USER -p$PASS $BASE_SQL < /dir/file.sql`

* * *

Tu trouveras [là](https://framagit.org/hucste/tools/blob/master/mng_bckp) mon propre script …

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mai 1, 2016, 1:41 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/6 "2016-05-01T13:41:23Z")

</div>

> [@PengouinPdt](#):
>
> De base : `mysql --opt -u $USER -p$PASS < /dir/file.sql`
> 
> En spécifiant une DB : `mysql --opt -u $USER -p$PASS $BASE_SQL < /dir/file.sql`

Avec gunzip ça donne ça :

Effectuer un dump gunzipé :

` mysqldump --databases testbases -u testuser -ptestpass | gzip > /votre/fichier/ici.sql.gz`

Effectuer la restauration du dump gunzipé :

` gunzip < /votre/fichier/ici.sql.gz | mysql -u testuser -ptestpass`

Après libre à toi de mettre en place un script et une rotation.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Mai 1, 2016, 2:52 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/7 "2016-05-01T14:52:49Z")

</div>

Donc ci j’inverse le \> en \< sa fait la fonction inverse ?

```
> #!/bin/sh
> USER=root
> PASS=chaduhiti
> BASE_SQL=glpi
> BACKUP=/root/sauvegarde

> # on dumpe la base MySQL dans un fichier temporaire
> mysqldump --opt -u $USER -p$PASS $BASE_SQL < /tmp/dumpbase.sql

> #
```

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Mai 8, 2016, 8:46 UTC](https://www.debian-fr.org/t/resolu-script-de-sauvegarde-restauration-mysql/69426/8 "2016-05-08T08:46:05Z")

</div>

Merci, vous êtes géniale
