[PHP/MySQL] database backuppen met exec

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Ik gebruik al een tijd een scriptje voor het backuppen van mijn database's thuis alleen nu wil ik hiermee ook een website gaan backuppen die ergens gehost wordt. Alleen daar staat, zoals bij bijna alle hosters, safe mode aan.

In het scriptje maak ik gebruik van shell_exec en mysqldump en sla dit op in een directory. Alleen shell_exec werkt niet op de server waar de website op staat, hij zegt:
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /usr/local/psa/home/vhosts/eensite.com/httpdocs/backup.php on line 21

Is er een mogelijkheid om dit anders te doen? Ik heb al het eea gezocht en andere functies gebruikt zoals system. Of is het uberhaupt niet mogelijk, zo nee is er een alternatief?

alvast bedankt.

PHP:
1
2
3
4
5
6
7
exec("mysqldump --user=".$config["mysql_user"]." --password=".$config['mysql_password']."
".$config['database']." > ".$config['directory']."".$config['filename']."".$config["file_ext_tmp"]);

exec("tar -cvzf ".$config['directory']."".$config['filename']."".$config['file_ext_tar']."
".$config['directory']."".$config['filename']."".$config["file_ext_tmp"]."");

exec("rm ".$config['directory']."".$config['filename']."".$config['file_ext_tmp']);

[ Voor 42% gewijzigd door Y0ur1 op 17-10-2004 19:03 ]


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 20:49

DizzyWeb

Ondertiteld

Ben bang van niet, in safe mode ewrkt veel gewoon niet.

Acties:
  • 0 Henk 'm!

Verwijderd


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Maar dat is voor een enkele tabel...

Acties:
  • 0 Henk 'm!

Verwijderd

Even een loopje maken met alle tabel namen erin en dan voor elke tabel deze query uitvoeren.

http://dev.mysql.com/doc/mysql/en/SHOW_TABLES.html

Zoek wel even uit hoe het zit met locken enzo van tabellen

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Y0ur1 schreef op 17 oktober 2004 @ 16:51:
[...]


Maar dat is voor een enkele tabel...
Met MSSQL heb je ook BACKUP DATABASE. Mischien is dat ook in MySQL.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 17 oktober 2004 @ 17:00:
Even een loopje maken met alle tabel namen erin en dan voor elke tabel deze query uitvoeren.

http://dev.mysql.com/doc/mysql/en/SHOW_TABLES.html

Zoek wel even uit hoe het zit met locken enzo van tabellen
Dat locken van die tabellen, betekent dat als het een hele grote site en veel bezoekers dat er even voor een split second in die tabel niks kan worden gezet? Als dat zo is heb ik er niks aan want de site moet gewoon doordraaien.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

Y0ur1 schreef op 17 oktober 2004 @ 17:14:
Dat locken van die tabellen, betekent dat als het een hele grote site en veel bezoekers dat er even voor een split second in die tabel niks kan worden gezet? Als dat zo is heb ik er niks aan want de site moet gewoon doordraaien.
Ik neem aan dat je toch niet overdag gaat backuppen? Je hebt anders het probleem dat je een snapshot wil maken van een tabel, welke ook nog gewijzigd kan worden, waardoor corruptie kan optreden :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
gorgi_19 schreef op 17 oktober 2004 @ 17:16:
[...]

Ik neem aan dat je toch niet overdag gaat backuppen? Je hebt anders het probleem dat je een snapshot wil maken van een tabel, welke ook nog gewijzigd kan worden, waardoor corruptie kan optreden :)
Maar s nachts moet het ook gewoon mogelijk zijn om de site te bezoeken. Zon mysql tabel is dan toch een fractie van een seconde onbereikbaar?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:44

gorgi_19

Kruimeltjes zijn weer op :9

Y0ur1 schreef op 17 oktober 2004 @ 17:26:
[...]


Maar s nachts moet het ook gewoon mogelijk zijn om de site te bezoeken. Zon mysql tabel is dan toch een fractie van een seconde onbereikbaar?
Mja, onbereikbaar... Ik zou eik verwachten dat hij 'in de wacht' staat; dus als je 2 seconden gelocked hebt, dan je dan 2 seconden langer op je request moet wachten :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Misschien kun je nakijken hoe phpMyAdmin een dump maakt.

Acties:
  • 0 Henk 'm!

  • Jaded
  • Registratie: Augustus 2001
  • Laatst online: 04-09 09:17
Misschien niet helemaal ontopic, maar als je je hoster even mailt zetten ze de Safe Mode voor je uit. Ik zie namelijk dat je bij Protagonist gehost bent.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Jaded schreef op 17 oktober 2004 @ 17:54:
Misschien niet helemaal ontopic, maar als je je hoster even mailt zetten ze de Safe Mode voor je uit. Ik zie namelijk dat je bij Protagonist gehost bent.
Daar gaan we in ieder geval al weg binnen kort omdat die server heel traag is en het is sowieso niet echt een oplossing. Ik moet een oplossing hebben met safe mode aan.

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Y0ur1 schreef op 17 oktober 2004 @ 18:08:
[...]


Daar gaan we in ieder geval al weg binnen kort omdat die server heel traag is en het is sowieso niet echt een oplossing. Ik moet een oplossing hebben met safe mode aan.
Wat is het probleem? Waarom mag een gebruiker niet toevallig 2 seconden langer wachten? Ik neem aan dat als jij echt een enorm grote site hebt (waarbij het dus echt langer zou doen) dat je dan wel een hosting-oplossing neemt waarbij je wél safe_mode uit kan laten zetten.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
chris schreef op 17 oktober 2004 @ 18:19:
[...]


Wat is het probleem? Waarom mag een gebruiker niet toevallig 2 seconden langer wachten? Ik neem aan dat als jij echt een enorm grote site hebt (waarbij het dus echt langer zou doen) dat je dan wel een hosting-oplossing neemt waarbij je wél safe_mode uit kan laten zetten.
Ik ga helaas niet over de server en over de instellingen bij de provider maar wel over de backup en moet derhalve gewoon een oplossing hebben voor met safe mode aan. Zo'n grote database is het niet, een paar mb.

Wat ik wil is een dump van de database maken, deze in een map wegschrijven zodat deze downloadbaar is. Maar volgens mij gaat dat niet echt makkelijk lukken zo.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Er staat dat dat BACKUP tables is afgekeurd en het alternatief, mysqlhotcopy, heb je ook weer shell xs voor nodig. En hier heb je toch ook shell xs voor nodig?

[ Voor 7% gewijzigd door Y0ur1 op 17-10-2004 20:04 ]


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
ook het volgende werkt niet, wat lokaal wel werkt:

PHP:
1
2
3
4
5
6
mysql_connect("localhost","***","***");

mysql_select_db("***");
$test = mysql_query("BACKUP TABLE news TO '/usr/local/psa/home/vhosts/eensite.com/httpdocs/'");

mysql_error($test);


hij geeft het volgende:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /usr/local/psa/home/vhosts/eensite.com/httpdocs/test.php on line 8

Acties:
  • 0 Henk 'm!

  • Neman
  • Registratie: September 2000
  • Laatst online: 20-09 19:50

Neman

Een uit de lucht gegrepen naam

Y0ur1 schreef op 17 oktober 2004 @ 22:25:
ook het volgende werkt niet, wat lokaal wel werkt:

PHP:
1
2
3
4
5
6
mysql_connect("localhost","***","***");

mysql_select_db("***");
$test = mysql_query("BACKUP TABLE news TO '/usr/local/psa/home/vhosts/eensite.com/httpdocs/'");

mysql_error($test);


hij geeft het volgende:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /usr/local/psa/home/vhosts/eensite.com/httpdocs/test.php on line 8
PHP:
1
2
3
4
5
6
$db = mysql_connect("localhost","***","***");

mysql_select_db("***");
$test = mysql_query("BACKUP TABLE news TO '/usr/local/psa/home/vhosts/eensite.com/httpdocs/'");

mysql_error($db);

Probeer dat eens.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Neman schreef op 17 oktober 2004 @ 23:01:
[...]

PHP:
1
2
3
4
5
6
$db = mysql_connect("localhost","***","***");

mysql_select_db("***");
$test = mysql_query("BACKUP TABLE news TO '/usr/local/psa/home/vhosts/eensite.com/httpdocs/'");

mysql_error($db);

Probeer dat eens.
Niks, login is goed.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Niemand die nog een alternatief heeft?

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Y0ur1 schreef op 17 oktober 2004 @ 23:11:
[...]


Niks, login is goed.
Hij bedoelt daarmee eigenlijk wat is de error bij zijn versie :?

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
eghie schreef op 19 oktober 2004 @ 18:52:
[...]

Hij bedoelt daarmee eigenlijk wat is de error bij zijn versie :?
Geen error. Ik krijg niks te zien.

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Zet
PHP:
1
error_reporting ( E_ALL );
eens boven aan de pagina.

Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
eghie schreef op 19 oktober 2004 @ 21:59:
Zet
PHP:
1
error_reporting ( E_ALL );
eens boven aan de pagina.
nog niks....

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Dan wel samen met jouw code gebruiken, waar je die fout dus wel krijgt.
Pagina: 1