Partage

Script de Backup de DB vers Dropbox

Sujet résolu
Le 11 mars 2011 à 16:26:12

Bonjour ou bonsoir,

Voilà j'ai un problème le script que j'ai trouvé sur Grafikart ( http://www.grafikart.fr/tutoriels/uplo [...] r-dropbox-129 ), il ne fonctionne pas sur mon hébergeur OVH pourtant j'ai bien mis la tache planifié avec comme version de php 5.3 et les droits d'exécution sur le fichier.
J'ai placé les deux fichiers dans un dossier "script" à la même hauteur que le dossier "www", le dossier "script" contient seulement le fichier ci-dessous et le fichier "DropboxUploader.php" qui a aussi les droits d'exécution.

J'ai modifié un peu le script pour qu'il puisse se connecter à ma DB et à mon compte dropbox...
Si quelqu'un serait me dire pourquoi sa cloche. o_O

Je rappelle que c'est cron que j'utilise pour sauvegardé ma base de donnée vers mon compte Dropbox.


Merci d'avance

Code:
<?php   
require 'DropboxUploader.php';  
  
function save_db($db_name){  
    protected $db_server,$db_user,$db_pass,$login_dBox,$pass_dBox;  
    $db_server='xxxx';  
    $db_user='xxxx';  
    $db_pass='xxxxx';  
    $login_dBox='xxxx@xxx';  
    $pass_dBox='xxxxx';  
  
    //création du fichier backup_filename avec son nom de DB+Date   
    $backup_filename = $db_name.'-'.date('d-m-Y').'gzip';  
      
    //execute la commande pour récupérer la base de donnée  
    $cmd = 'mysqldump -u '.$db_user.' -h '.$db_server. ' --password='.$db_pass.''.($db_name=="?'--all-databases' :$db_name";  
    passthru($cmd);  
  
    //on envoie sur Dropbox  
    $uploader = new DropboxUploader($login_dBox,$pass_dBox);  
    $uploader->upload($backup_filename,'/Site/Lx4.be/backup');  
      
    //On supprimme le fichier backup_filename  
    unlink($backup_filename);  
}  
save_db('xxxxx');  
?>


Un grand merci
Publicité
Le 11 mars 2011 à 16:26:12
Le 11 mars 2011 à 17:53:51

Si on avait le problème, ça aiderait sûrement. Et tu peux virer la ligne 5, je ne sais pas où tu es allé chercher cette grosse bêtise (pour rester poli).
Le 11 mars 2011 à 18:01:14

Merci déjà pour la réponse,
la ligne 5: je croyais que l'on pouvais faire sa car je viens du java et parfois j'ai encore quelque tic.

Mais le problème en soit c'est que je planifie la tache avec OVH manager pour que le script s'exécute mais j'ai rien qui arrive sur mon dropbox...

Donc je déduis que sa fonctionne pas mais j'ai malheureusement aucune piste d'erreur, aucun log.

[EDIT]
C'est la version corrigé sans les protected
J'ai un log :

-------------------------==  Début  ==-------------------------

br /
bDeprecated/b:  Directive &#39;register_globals&#39; is deprecated in PHP 5.3 and greater in bUnknown/b on line b0/bbr /
br /
bDeprecated/b:  Directive &#39;magic_quotes_gpc&#39; is deprecated in PHP 5.3 and greater in bUnknown/b on line b0/bbr /
X-Powered-By: PHP/5.3.5
Content-type: text/html

br /
bParse error/b:  syntax error, unexpected &#39;;&#39; in b/homez.406/xxxx/script/scriptDropbox.php/b on line b15/bbr /

-------------------------==   Fin   ==-------------------------
Le 11 mars 2011 à 21:39:43

Remplace <?php $cmd = 'mysqldump -u '.$db_user.' -h '.$db_server. ' --password='.$db_pass.''.($db_name=="?'--all-databases' :$db_name"; par <?php $cmd = 'mysqldump -u '. $db_user .' -h '. $db_server .' --password='. $db_pass .' '. ($db_name == null ? '--all-databases' : $db_name); et dis nous si ça marche. :)
Le 11 mars 2011 à 22:26:36

C'est super cette fonctionnalité ! Elles sont où les sources ?
Merci :)
Le 11 mars 2011 à 22:40:30

Bonsoir et merci,

alors j'ai fais les modifs et j'attends le log du server.

Pour les sources --> http://jaka.kubje.org/projects/dropbox-uploader/ et je te conseille de regarder la vidéo de Grafikart (3min) ( http://www.grafikart.fr/tutoriels/uplo [...] r-dropbox-129 )
Le 11 mars 2011 à 22:58:17

Il faut mettre quoi dans
<?php $uploader->upload('path/to/a/file.txt');
?
Merci !
je te dirai si ça marche chez moi !
Le 11 mars 2011 à 23:06:27

Tu dois mettre le chemin vers le quelle tu veux envoyer ton fichier dans ton dropbox par défaut sa l'envoie à la racine "/"

[EDIT]

Voilà j'ai reçu le log mais bizarrement j'ai rien dans mon dossier dropbox pourtant le dump fonctionne o_O

Message :
Numéro            : 40903
Heure de début    : 2011-03-11 23:24:01
Heure de fin      : 2011-03-11 23:24:02
Commande exécutée : /usr/local/bin/php.TEST.5 -c /usr/local/lib/php.ini /homez.406/xxxx/script/scriptDropbox.php
Code de retour    : 65280



Log:

-------------------------==  Début  ==-------------------------

br /
bDeprecated/b:  Directive &#39;register_globals&#39; is deprecated in PHP 5.3 and greater in bUnknown/b on line b0/bbr /
br /
bDeprecated/b:  Directive &#39;magic_quotes_gpc&#39; is deprecated in PHP 5.3 and greater in bUnknown/b on line b0/bbr /
X-Powered-By: PHP/5.3.5
Content-type: text/html

-- MySQL dump 10.11
--
-- Host: mysqlxx-xx.perso    Database: xxxxx
-- ------------------------------------------------------
-- Server version       5.1.49-3-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE=&#39;+00:00&#39; */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=&#39;NO_AUTO_VALUE_ON_ZERO&#39; */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `avion`
--

DROP TABLE IF EXISTS `avion`;
CREATE TABLE `avion` (
  `immatriculation` varchar(7) NOT NULL,
  `nbPlaces` smallint(5) DEFAULT NULL,
  `autonomie` smallint(4) DEFAULT NULL,
  `paysImmatriculation` varchar(25) DEFAULT NULL,
  `type` varchar(25) DEFAULT NULL,
  PRIMARY KEY (`immatriculation`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Dumping data for table `avion`
--


Je n'ai pas mis la suite car c'est juste le dump de ma table et que je n'ai droit qu'a x caractères dans le log

[RE EDIT]

J'ai modifié le code pour qu'il m'envoie un fichier test_hello.php et sa fonctionne :)

C'est déja pas mal donc le problème viens qu'il ne créé pas le fichier ou il met le dump de mysql, j'ai remarqué que j'avais oublié en "." ici -->.<--gzip donc je retest.


PROBLÈME RÉSOLU :D

<?php 
require 'DropboxUploader.php';

function save_db($db_name){
	$db_server='xxxx';
	$db_user='xxx';
	$db_pass='xxxx';
	$login_dBox='xxxx';
	$pass_dBox='xxxx';

	//création du fichier backup_filename avec son nom de DB+Date 
	$backup_filename = $db_name.'-'.date('d-m-Y').'.sql.gz';
	
	//execute la commande pour récupérer la base de donnée
	$command = "mysqldump -h$db_server -u$db_user -p$db_pass $db_name | gzip> $backup_filename";
	system($command);

	//on envoie sur Dropbox
	$uploader = new DropboxUploader($login_dBox,$pass_dBox);
	$uploader->upload($backup_filename,'/Site/Lx4.be/backup');
	
	//On supprimme le fichier backup_filename
	unlink($backup_filename);
}

save_db('xxxx');

?>


Merci pour votre aide ;)

Script de Backup de DB vers Dropbox

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown