2011-08-14 2 views
0

J'ai lu plusieurs SO sur les extraits de code et les suggestions pour cela, mais je ne pense pas qu'il y ait eu un consensus entre eux pour ma tâche, donc je Je combine quelques questions à poser une fois de plus. En outre, les autres étaient assez vieux, et je voudrais obtenir des réponses mises à jour ...Sauvegarde de la base de données MySQL avec PHP, puis cryptage du fichier pour téléchargement sur un autre serveur

L'objectif

  • Dump SQL DB complètement (de telle sorte que cela pourrait être importé retour dans MySQL si la DB devait être effacée ...). Idéalement, ce vidage sql pourrait être importé via PHPMyAdmin, par exemple.
  • Prenez la décharge, cryptez-le via PHP5 (je pense avec mcrypt).
  • Prenez le fichier crypté, et téléchargez-le sur un serveur distant via SSH2 en PHP.
  • Supprimez le fichier crypté local et le vidage local non crypté.

Au verso - dois-je besoin d'accéder à la sauvegarde enregistrée

  • manuellement SFTP dans le serveur distant où les sauvegardes sont stockées.
  • Sauvegarde cryptée Donwload.
  • Déchiffrez-le.
  • importer manuellement de nouveau dans MySQL via PHPMyAdmin

Je ne vraiment pas besoin d'un script pour faire le processus inverse. Au cas où j'aurais besoin d'une sauvegarde, je suis déjà très impliqué dans la sauvegarde et le fonctionnement - donc le décryptage manuel ne devrait pas poser de problème. Cependant, je veux être sûr que je sais le meilleur façon de le faire, au-delà de la lecture du manuel PHP ...

Répondre

1

Merci tim. J'ai trouvé une bonne solution préconstruite dans PHPMySQLAutoBackup. J'ajoute dans le code qui cryptera avec GPG en utilisant system() .. bien que ce ne soit pas sans mes difficultés en ce moment. Je vais ouvrir une nouvelle question si je continue à avoir des problèmes de GPG ...

1

Semble assez simple, vraiment.

Si vous voulez le programmer en PHP, c'est bien. Cependant, vous n'avez probablement pas besoin de beaucoup de fonctionnalités PHP. Vous allez simplement utiliser des structures de contrôle simples, shell_exec(), que vous utiliserez pour piloter quelques outils de ligne de commande, tels que mysqldump, gpg (ou autre utilitaire de chiffrement), scp (pour envoyer vos données hors site), et unlink() pour supprimer votre copie locale.

Il semble donc que vous ayez juste besoin de pointeurs vers des outils de ligne de commande. J'ai mentionné celui que j'utiliserais ci-dessus. Au-delà de cela, il suffit de mettre en place les bonnes chaînes de lignes de commande et exec() ou shell_exec() les.

Questions connexes