Devblog

Mes notes de développeur

J'ai commencé ce projet quand je n'avais qu'un mutualisé chez OVH (très bien d'ailleurs, pour le prix, mais il me fallait plus).

Il permet de faire une sauvegarde de fichiers, dossiers, base de données vers divers destinations via de nombreux protocoles via PHP

Utilisant pas mal les factory, ce script est donc extendable quasi à volonté. La seule limite est donc 1 seule backup pour 1 seul transport par scenario.

Ah oui, car, à la manière de backup-manager ce script utilise des scenarii sous forme de JSON.

Dans ce scenario, vous décrivez 2 choses :

  1. L'élément à sauvegarder (liste de fichiers, la/les table/s et les identifiants de connexion, etc)
  2. Le moyen de transport de la sauvegarde (Dropbox et ses détails (token, dossiers, …), email, FTP, SFTP, autre dossier,etc)

Ça donne un truc du genre :

{
  "backup": {
    "Mysql": {
      "host"  : "mysql host",
      "login" : "mysql login",
      "pwd"   : "mysql password",
      "db"    : "mysql database",
      "tables": "*"
    }
  },
  "transport": {
    "Sftp": {
      "host"      : "your URL or IP",
      "port"      : 22,
      "login"     : "your new user name",
      "password"  : "your new user password",
      "folder"    : "/backup"
    }
  }
}

Ensuite, le scenario est lancé en 1 ligne de code (ou presque, si on veut garder les choses propres) :

<?php
include_once 'path/to/Scenario.php';
try {
    \Shikiryu\Backup\Scenario::launch('backup.json'); // whatever the file name you gave previously
} catch (\Exception $e) {
    echo $e->getMessage();
}

Le script est aussi sur Github, et même sur packagist