Tâche planfiée Cron backup bdd
... / Tâche planfiée Cron backup bdd
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Tâche planfiée Cron backup bdd

by
Community Deleted user
Created on 2018-05-15 07:13:43 (edited on 2024-09-04 11:18:33) in Tâches automatiques (cron)

Bonjour à tous,
je suis sur un dédié SP32. Je souhaite mettre en place une tâche planifiée - Cron de backup d'une de mes bdd (plusieurs bdd hébergées sur ce serveur). Je suis un newbie en la matière.
Quelqu'un peut-il m'aiguiller ?
Merci d'avance.


4 Replies ( Latest reply on 2018-05-17 13:33:35 by
janus57
)

Bonjour,

Vous êtes dans la mauvaise section du forum.

Je vous conseil de poster dans la section des serveurs dédié et d'indiquer votre niveau de compétence en administration de serveur, car savoir faire un backup sans savoir le restauré et le stocker cest inutile.

Cordialement, janus57

Mydumper (génial pour de petits volumes), MyLVMBackup, mysqldump (berk) sont facile à utiliser. Il faudra scripter un peu pour que la sauvegarde soit envoyée sur le FTPBackup d'OVH.

Par contre, même remarque que Janus : Sauvegarder, c'est bien. Savoir restaurer, c'est mieux.
Ce qui sous-entend qu'il va falloir scripter, tester, documenter l'ensemble des procédures de sauvegarde et de restauration, et les dérouler réellement ! Supposer que ça marche ne suffit pas, il faut prouver que la sauvegarde s'est bien réalisée et prouver qu'on sait reprendre une sauvegarde. (ce qui sous-entend qu'on gère les espaces de sauvegarde, le reporting, les alertes en cas d'échec...)

Quant à la documentation de cron, c'est trivial, tu trouveras tout ce qu'il faut sur le net.

Merci pour l'info mais je ne vois pas de section reservée au dédiés, je me trompe ?

J'ai réussi en farfouillant sur ce forum à mettre en place un script php de sauvegarde de bdd (somme toute assez rudimentaire, ne gérant pas les sauvegardes de manière incrémentielle, par exemple). Lorsque j'exécute manuellement mon script, il s'éxécute et me créée bien un dump valable en revanche le cron ne fonctionne pas...
Ci-contre la règle cron en place : 59 23 * * * /var/www/vhosts/mondomaine.fr/httpdocs/backup/sql_backup.php

Ta tâche cron ne marchera que si :

* le fichier est en exécutable
* sa première ligne contient la bonne shebang vers le binaire PHP.

Pour avoir les réponses à mes questions :
ls -l /var/www/vhosts/mondomaine.fr/httpdocs/backup/sql_backup.php
head -2 /var/www/vhosts/mondomaine.fr/httpdocs/backup/sql_backup.php


(accessoirement, je trouve que PHP est un peu... le marteau pour écraser une mouche)

Merci de prendre le temps de me répondre ;-)
Je suis un noob en gestion serveur.
Alors pour le ls -l, j'obtiens : -rwxr-xr-x
Et pour le head -2, j'obtiens : error_reporting(E_ALL); // Activer le rapport d'erreurs PHP

Il te manque la "shebang" (première ligne d'un script exécutable)
Rien de grave. Il faut juste que tu précises l'interpréteur dans la crontab

Pour déterminer ce qu'il faut mettre :
which php

Sur une Debian, ça donne : /usr/bin/php
Il faut donc modifier ta crontab pour avoir :
59 23 * * * **/usr/bin/php** /var/www/vhosts/mondomaine.fr/httpdocs/backup/sql_backup.php

Ca devrait beaucoup mieux marcher comme ça.

Si je comprends bien il faut que je préfixe (en quelque sorte) le chemin vers mon script php avec "/usr/bin/php" ?
Je dois mettre un espace après ce préfixe avant d'enchaîner sur "/var/..." ?

Pour mettre en place des sauvegardes incrémentales, tu as besoin :

* d'une full !
* de la position dans les logs au moment de la full
* des binlogs pour les rejouer à posteriori

MyDumper récupère la position du master avant de faire sa sauvegarde.
MyLVMbackup aussi.
Pour mysqldump, tu peux utiliser l'option --master-data (ainsi que plein d'autres options)

J'attire ton attention sur un point : si tu te lances dans les sauvegardes incrémentales, il est capital que ta sauvegarde full soit cohérente : que toutes les tables soient sauvegardées au même instant. Cela ne peut se faire qu'en posant des verrous sur les tables. Dans le cas de MyLVMBackup, ça dure quelques secondes. Dans le cas de MyLoader, ça dure tout le temps de la sauvegarde. Quant à mysqldump, je n'en parle même pas, il n'est pas fait pour ce genre de boulots. (et il le fait généralement mal)

En fait, la ligne correspond à appeler /usr/bin/php avec en paramètre ton script de sauvegarde donc :

* oui, il faut préciser l'interpréteur (/usr/bin/php) avant ton script
* oui, il faut un espace après le chemin de ton interpréteur
* tu pars de loin, non ? ;-)

Je suis designer à la base :-)
Donc oui, je pars de (très) loin...
En tous cas un énorme merci pour ton aide !!

Bonjour,

Du coup question bête: pourquoi un dédié et pas une offre managé?

Car là concrètement si vôtre script ne va pas déposer les backup ailleurs il est inutile (idem si vous n'arrivez pas à restaurer les backups).

Cordialement, janus57

J'ai "hérité" d'une infrastructure qui avait été mise en place par qq'un d'autre (qui ne maîtrisais pas mieux que moi).
Déposer les backups ailleurs, cad sur un autre serveur ?
Chez ovh, je ne connais pas d'offres managées...
Mais j'entends bien rechercher un prestataire pour réaliser l'infogérance, ce domaine étant très très particulier et pas à la portée de tout le monde.

Bonjour,


Déposer les backups ailleurs, cad sur un autre serveur ?

oui, ou au moins ailleurs que sur le serveur qui fait les sauvegarde et être capable de les récupérer en fonction de vos besoins.

[quote]Chez ovh, je ne connais pas d'offres managées...[/quote]
il y a les mutu ou les offres plesk, et sinon il y a d'autres prestataires que OVH (tout dépend le besoin et le budget).

Cordialement, janus57

Je suis sur une offre Plesk.
Néanmoins malgré l'interface graphique, je n'ai pas réussi à mettre en place de sauvegarde automatisée...

Bonjour,

Perso je parle de cette offre plesk OVH : https://www.ovh.com/fr/hebergement-plesk/

Cordialement, janus57