But
Avoir un script exécutable en ligne de commande permettant la sauvegarde d’une base de données distante, à laquelle on n’a accès qu’indirectement par une interface PHP.
Stratégie
Utiliser wget pour reproduire le comportement qu’aurait un utilisateur utilisant un browser pour accéder à l’interface phpMyAdmin sur la machine distante :
- Log in sur la page d’accueil index.php et récupération du cookie d’authentification et du token
- Ré-utilisation de ce cookie et du token pour les accès à phpMyAdmin suivants
- Obtention du contenu de la page db_export.php, qui liste les tables présentes sur le serveur
- Appel du script export.php pour obtenir une version compressée des instructions SQL nécessaires pour restaurer la base et toutes ses tables avec leur contenu
- Sauvegarde du fichier avec la date du jour
Prérequis
phpMyAdmin est installé sur le serveur
Téléchargement
save_sql_phpmyadmin_v1
Testé avec phpMyAdmin 3.2.1 réglé pour une authentification par cookie où une seule base de données est accessible à l’utilisateur connecté.
Référence
FAQ de phpMyAdmin : How can I backup my database or table?
Mots-clés
sauvegarde, backup, base de données, database, remote, à distance, mysql, sql, phpmyadmin, cookie, auth type, bash, sh, linux, ligne de commande, command line, terminal, wget, http request, automatique, automated, automation, cron, php, restricted access, GET, POST, parameter, URL, hyperlien, hyperlink, token, export.php, gzip, compression