Bonjour à tous,
je vous avoue humblement que mes connaissances en BDD datent un peu et que je galère pour faire ce que je veux.
J'ai une base mysql commune à plusieurs sites joomla qui ont chacun un préfixe correspondant au nom de leur répertoire sous mon www.
Je souhaiterais effectuer un script php que j'appelerais depuis un cron OVH pour sauvegarder quotidiennement chacune des sous parties de la base regroupant les tables avec un préfixe donné.
J'ai essayé MYSQLDump mais je galère car il faut lui donner une liste de table.
J'ai pensé faire une requéte en php pour lister toutes les tables dans une string mais c'est pas évident parce que j'ai vu qu'il y a plein de fonctions php deprecated et qu'il faut visiblement utiliser mysqli sans parler du problème de simple quote et double quote.
J'ai déjà fait le code suivant pour sauvegarder toute ma base et je sollicite votre aide pour l'améliorer et me permettre de filtrer les tables avec un certain préfixe par exemple "00000_":
Enfin de voudrais faire évoluer ce code pour qu'il liste tous les dossiers de la racine www de mon hébergement et que pour chaque nom listé, il effectue une sauvegarde avec un préfixe correspondant au nom du dossier. Ceci me permettrait d'avoir un cron de sauvegarde évolutif en cas d'ajout de nouveau site joomla.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?PHP error_reporting(E_ALL); // Activer le rapport d'erreurs PHP $db_charset = "utf8"; /* mettre utf8 ou latin1 */ $db_server = "******.mysql.db"; $db_name = "******"; $db_username = "******"; $db_password = "******"; $cmd_mysql = "mysqldump"; $today = date("m-d-y"); $Prefixe_tables_a_sauvegarder = "00000_"; $archive_GZIP = "sauve_base_Client_".$Prefixe_tables_a_sauvegarder.$today.".gz"; echo " Sauvegarde de la base <font color=red><b>$db_name</b></font> par <b>mysqldump</b> dans le fichier <b>$archive_GZIP</b> <br> \n"; $commande = $cmd_mysql." --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset $db_name | gzip -c > $archive_GZIP "; $CR_exec = system($commande); ?>
Si vous avez également la procédure pour restaurer la partie de la base à partir de l'archive, je suis preneur aussi
Merci par avance
Partager