[php] Commandline, ./mysqldump: No such file or directory

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
Hoi,

Ik doe een poging een backup script te maken. Dit nu nog in PHP voor command line (al is het misschien niet de beste keus voor die doel).

Het script maakt eerst met system() directory's aan, en kopieert vervolgens user data en websites. Dit gaat allemaal goed. Vervolgens gaat het MySQL databases met mysqldump naar files gooien. Maar ik krijg steeds de volgende melding:

code:
1
sh: ./mysqldump: No such file or directory


Ik doe dit met het volgende stukje code:

PHP:
1
2
system ( '/usr/local/mysql/bin/mysqldump --opt -u root -pblablabla ' . $database . 
' > /backup/backup-' . $backup_date . '/mysql/' . $database . '.sql ' . $command_suffix );


Als ik inplaats van het volledige command door system() gooi het met echo() bekijk klopt het wel helemaal, ook als ik het copy/paste dan werkt het wel gewoon.

Ik heb wat gezocht hier op GoT, maar het is best moeilijk zoeken als je niet precies weet waarnaar je moet zoeken, het zal vast wel weer een domme fout zijn :P.

[ Voor 4% gewijzigd door PowerSp00n op 03-12-2003 15:04 . Reden: Layout verneukende shit even entertjes ertussen. ]


Acties:
  • 0 Henk 'm!

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03 16:08
Ik denk dat jouw PHP configuratie niet toestaat dat je willekeurige system commands uitvoert. Daarnaast zou ik dit gewoon in een shell scriptje proppen, is veel simpeler ;)

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Je schrijf naar een dir die waarschijnlijk nog niet bestaat. Mysqdump maakt naar min weten alleen files aan en geen dir. Als je ipv /backup/backup-$date eens alleen /backup gebruikt wat zijn dan de resultaten. Heb je dan nog steeds hetzelfde probleem?

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Die error betekent volgens mij dat hij de executalbe mysqldump niet kan vinden.

Ik ken je configuratie niet, maar bij mij staat ie default in:
/usr/local/bin/mysqldump

[ Voor 37% gewijzigd door Grijze Vos op 04-12-2003 18:26 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
rig0r schreef op 04 december 2003 @ 12:53:
Ik denk dat jouw PHP configuratie niet toestaat dat je willekeurige system commands uitvoert. Daarnaast zou ik dit gewoon in een shell scriptje proppen, is veel simpeler ;)
Om alleen even op die configuratie in te gaan :P, valt al af.
Het script maakt eerst met system() directory's aan
ripexx schreef op 04 december 2003 @ 13:17:
Je schrijf naar een dir die waarschijnlijk nog niet bestaat. Mysqdump maakt naar min weten alleen files aan en geen dir. Als je ipv /backup/backup-$date eens alleen /backup gebruikt wat zijn dan de resultaten. Heb je dan nog steeds hetzelfde probleem?
Zie bovenstaande quote (directory's zijn allemaal al aangemaakt, zie ook het copy/paste gedeelte van het command van het start topic) , maar zal het toch nog eens proberen.
Grijze Vos schreef op 04 december 2003 @ 18:26:
Die error betekent volgens mij dat hij de executalbe mysqldump niet kan vinden.

Ik ken je configuratie niet, maar bij mij staat ie default in:
/usr/local/bin/mysqldump
Al bedoelt je (iedereen hier) het heel goed, zie mijn openings post (en ook lezen natuurlijk), .
Als ik inplaats van het volledige command door system() gooi het met echo() bekijk klopt het wel helemaal, ook als ik het copy/paste dan werkt het wel gewoon.

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 19:38
Wat dacht je van het volgende: dat stukje wordt uitgevoerd op een heel andere plek dan dat jij het copy/paste om het in de command mode uittetesten, bijvoorbeeld /usr/local/apache of /usr/local/php of zo iets leuks... En daar zit toevallig mysqldump niet... :)

|>


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
Simon schreef op 04 december 2003 @ 21:52:
Wat dacht je van het volgende: dat stukje wordt uitgevoerd op een heel andere plek dan dat jij het copy/paste om het in de command mode uittetesten, bijvoorbeeld /usr/local/apache of /usr/local/php of zo iets leuks... En daar zit toevallig mysqldump niet... :)
Volgensmij begrijp ik je goed, mocht dat niet zo zijn meld het even :p. Maar ik gebruik het volledige path? Zowel in dat script dus als dat ik het gewoon de output van dat script kopieer (als system in een echo'tje is verandert).

Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 19:38
PowerSp00n schreef op 04 december 2003 @ 21:55:
[...]


Volgensmij begrijp ik je goed, mocht dat niet zo zijn meld het even :p. Maar ik gebruik het volledige path? Zowel in dat script dus als dat ik het gewoon de output van dat script kopieer (als system in een echo'tje is verandert).
Ik ben blind :P

Stel dat je het eens probeert zonder al die parameters, wat geeft hij dan?

|>


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
Simon schreef op 04 december 2003 @ 21:57:
[...]

Ik ben blind :P

Stel dat je het eens probeert zonder al die parameters, wat geeft hij dan?
Gebeurt iedereen wel eens..
Ik heb nu veel verschillende mogelijkheden geprobeert (gewoon mysqldump, mysqldump naar /usr/bin e.d.), en ook ipv system() een keer passthru(), maar het blijft dezelfde error geven.

Ik zal ook maar even wat informatie geven over de software:

Slackware 8.1
PHP 4.3.4 (cli)
MySQL 3.23.54
mysqldump Ver 8.22

[ Voor 5% gewijzigd door PowerSp00n op 04-12-2003 22:05 . Reden: paar voorbeeldjes ]


Acties:
  • 0 Henk 'm!

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
Ok, nadat ik er laatst aan dacht dat ik met het Horde framework library's laatst hetzelfde probleem had ben ik er nog eens naar gaan kijken. Bij de CVS versie hiervan zit een script die een dir doorbladert en de onderliggende library's met PEAR installeert. Toen had ik ook het probleem dat het commando ./pear niet gevonden kon worden, mailinglists gechecked maar verder was er niemand anders met het probleem.

Dit is dus ook een kick met wat extra informatie waar ik nog aan dacht. Misschien moet ik mijn php config eens gaan posten (of linken in ieder geval)?

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Onder welke user draait apache/php? Mag deze user dan ook dit programma uitvoeren? :)

buit is binnen sukkel


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Topicstarter
ripexx schreef op 08 december 2003 @ 08:27:
Onder welke user draait apache/php? Mag deze user dan ook dit programma uitvoeren? :)
Dit heeft niets met Apache te maken, het runt gewoon op de command line met een gebruiker die het gewoon kan uitvoeren.

Maar probleem opgelost, safe_mode_exec_dir stond op "." (huidige directory dus).

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

PowerSp00n schreef op 18 december 2003 @ 21:53:
Maar probleem opgelost, safe_mode_exec_dir stond op "." (huidige directory dus).
rig0r schreef op 04 december 2003 @ 12:53:
Ik denk dat jouw PHP configuratie niet toestaat dat je willekeurige system commands uitvoert.
;)
Pagina: 1