Petit hack pour les backups du PaaS

Le nez dans les projets, nous ne prenons pas le temps d'aller à la concurrence, mais notre hébergeur est en carton. [1]

Les outils d'administrations (phpmyadmin et net2ftp), en plus d'être vieillissants, ont les limites PHP (temps limite d'exécution du script, max upload etc...). Il est donc impossible d'importer / exporter les bases ou des dossiers assez chargés. Ces interfaces sont en http d'ailleurs.

net2ftp.png

Au final, c'est super pénible.

Pour contourner cette difficulté, j'ai déposé deux fichiers php qui font appel aux commandes shell.

dump mySql

Ce premier fichier backupsqlJKG54KFD.php [2]crée un dump mysql via la commande mysqldump et le dépose dans une zone où j'ai accès en SFTP.

<?php
    echo "Creating the dump";
  try {
    exec ('/usr/bin/mysqldump -u USERSQL -pPASSWORDSQL BASESQL > /var/path/dump64564.sql');
  }catch (Exception $e) {
    echo 'Exception reçue : ',  $e->getMessage(), "\n";
}
?>

Pour (re)créer le dump, je n'ai qu'à me rendre sur https://site/backupsqlJKG54KFD.php

Backup zip

Idem dans la même logique, ce script créée un zip (tar n'est pas installé sur le serveur) du site web.

<?php
    echo "Creating the dump";
  try {
    exec ('/usr/bin/zip -r /var/path/html.zip /var/www/path/html/');
  }catch (Exception $e) {
    echo 'Exception reçue : ',  $e->getMessage(), "\n";
}
?>

Evidemment, si vous utilisez ces deux petits scripts, vous modifiez les chemins et les crédentials sql.

Notes

[1] En fait la prestation vendue est un PaaS: Platform as a service. C'est une VM managée avec Puppet par le fournisseur, sur laquelle il a installé (via puppet) apache2, php5. Nous (point de vue client) on l'utilise en accédant au SFTP ou via l'outil Net2ftp et l'interface phpmyadmin installé sur la VM. Comme l'hébergeur rechigne à 'installer des paquets supplémentaires (pdftk) ou autre, ça n'a aucune plus value par rapport à un hébergement mutualisé à 2€ qui aurait une protection DDOS.

[2] J'évite de mettre des noms de fichier qu'un bot pourrait chercher

Page top