OVH Community, votre nouvel espace communautaire.

CRON - Exportation de base de donnée


Abazada
21/03/2016, 11h11
Citation Envoyé par Ludo.H
Pourquoi ne pas utiliser "bash" plutot que "php" ?
Pourquoi faire simple quand on peut faire compliqué ?

Jaber
21/03/2016, 10h17
Merci à tous les deux pour votre aide.
Ça fonctionne !

Cordialement

Jaber
18/03/2016, 17h46
Merci à tous les deux ! Je vous reviens dès que vos propositions s'exécutent.
Le php et le bash

Cordialement.

Ludo.H
18/03/2016, 15h39
Bonjour,

Pourquoi ne pas utiliser "bash" plutot que "php" :

Code:
#!/usr/bin/env bash

mysqldump \
    --host=domainenetbidbase.mysql.db \
    --user=domainenetbidbase \
    --password=P*a*s*s*w*o*r*d \
    --no-create-db \
    --default-character-set=utf8 \
    --lock-tables=FALSE \
    --tables domainenetbidbase > /homez.2094/domainenetbi/www/admin/gestions/export-dbase/DataBase/Test_1_`date '+%H-%M')`.sql
Ce sera plus propre que de passé par PHP.

toineg
18/03/2016, 15h26
Bonjour,

Ne manque-t-il pas des backslashes (\) à la fin de chaque ligne du mysqldump? Ainsi qu'un "/" au début du chemin 'homez.2094/domainenetbi/www/admin/...' ?
Par ailleurs, préférez l'utilisation plus portable '/home/' dans votre script.

Cela donnerait
Code PHP:
#!/usr/local/bin/php
system("mysqldump \
--host=domainenetbidbase.mysql.db \
--user=domainenetbidbase \
--password=P*a*s*s*w*o*r*d \
--no-create-db \
--default-character-set=utf8 \
--lock-tables=FALSE \
--tables domainenetbidbase > \
/home/domainenetbi/www/admin/gestions/export-dbase/DataBase/Test_1_"
.date("H-i").".sql");
?>

Jaber
18/03/2016, 15h08
Bonjour à tous !

Depuis quelques (20) jours je suis en discussion avec l'assistance d'OVH afin de résoudre mon problème mais en vain.
J'ai donc appelé OVH ce matin et la bonne dame m'a dit que tout va bien du côté serveur, mais que mon script doit être corrigé.
Lorsque j'exécute ma page PHP manuellement, la base de donnée se crée, mais depuis la tache cron, rien !

Voici ma commande cron (valide) : www/admin/gestions/export-dbase/test_1.php

Voici ma page php :
Code PHP:
#!/usr/local/bin/php
system("mysqldump 
--host=domainenetbidbase.mysql.db 
--user=domainenetbidbase 
--password=P*a*s*s*w*o*r*d
--no-create-db 
--default-character-set=utf8 
--lock-tables=FALSE 
--tables domainenetbidbase >
homez.2094/domainenetbi/www/admin/gestions/export-dbase/DataBase/Test_1_"
.date("H-i").".sql");
?>
E voici mon rapport de logs :
Code:
[2016-03-18 00:09:02] ## OVH ## END - 2016-03-18 00:09:02.125464 exitcode: 0
[2016-03-18 00:14:02] ## OVH ## START - 2016-03-18 00:14:02.686829 executing: /usr/local/php5.6/bin/php /homez.2094/domainenetbi/www/admin/gestions/export-dbase/test_1.php 
[2016-03-18 00:14:02] Usage: mysqldump [OPTIONS] database [tables]
[2016-03-18 00:14:02] OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
[2016-03-18 00:14:02] OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
[2016-03-18 00:14:02] For more options, use mysqldump --help
[2016-03-18 00:14:02] sh: line 1: --host=domainenetbidbase.mysql.db: command not found
[2016-03-18 00:14:02] sh: line 2: --user=domainenetbidbase: command not found
[2016-03-18 00:14:02] sh: line 3: --password=P*a*s*s*w*o*r*d: command not found
[2016-03-18 00:14:02] sh: line 4: --no-create-db: command not found
[2016-03-18 00:14:02] sh: line 5: --default-character-set=utf8: command not found
[2016-03-18 00:14:02] sh: line 6: --lock-tables=FALSE: command not found
[2016-03-18 00:14:02] sh: -c: line 7: syntax error near unexpected token `newline'
[2016-03-18 00:14:02] sh: -c: line 7: `--tables domainenetbidbase >'
Mon script est déposé dans un sous dossier (admin) et ma version php globale est 7.0. Par contre, dans la liste cron, mon php est au maximum 5.6.

Merci de m'aider, car franchement je ne trouves pas logique que manuellement le code fonctionne, mais pas avec une tache cron.

Cordialement.