Hoi allemaal,

Ik ben op zoek naar een PHP script wat (in de toekomst) een grote database kan backuppen. Ik ben al ruim twee uur aan het zoeken, maar ik kan alleen maar scripts vinden die óf niet werken, óf alleen maar kleine databases kunnen backuppen.

Ik heb in het verleden een prachtig script gehad wat een speciale methode gebruikte om time-outs te voorkomen, maar ik kan het niet meer terugvinden.

Uiteindelijk is het de bedoeling dat ik het PHP bestand kan aanroepen met een cronjob. Het resultaten laten mailen is niet per se nodig, maar zou wel fijn zijn.

Wie kan mij helpen?

Mvg,
Tom
Al eens gekeken naar Bigdump?

http://www.ozerov.de/bigdump/

Mocht je DirectAdmin gebruiken, dan kan je ook de API daarvan aanroepen via een cronjob?
- Aar - op 07/10/2011 16:29:55

Mocht je DirectAdmin gebruiken, dan kan je ook de API daarvan aanroepen via een cronjob?

Ik gebruik DirectAdmin.. Hoe gaat dat dan precies in zijn werking?
Download de class

<?php
include 'httpsocket.php';

$sock = new HTTPSocket;
$sock->connect('JE DOMEIN',2222);

$sock->set_login("INLOGNAAM","INLOGPASS");

$sock->set_method('POST');

$sock->query('/CMD_API_CRON_JOBS',
array(
'action' => 'create',
'domain' => 'JE DOMEIN',
'minute' => 'HOEVEEL MINUTEN',
'hour' => 'WELK UUR',
'dayofmonth' => 'WELKE DAG VD MAAND',
'month' => 'WELKE MAAND IN CIJFERS',
'dayofweek' => 'WELKE DAG VD WEEK',
'command' => 'VOLLEDIG PATH NAAR BESTAND',
));
$result = $sock->fetch_body();

echo $result;

?>
En pas die $sock->query aan naar: /CMD_API_SITE_BACKUP, en pas die array aan, zodat je dit krijgt:


<?php
/* Yaddah */

$sock->query('/CMD_API_SITE_BACKUP',
    array(
        'action' => 'backup',
        'select0' => 'database'
    ));
?>

En dit zou je dan als cronjob kunnen draaien. Als je de class includeert. Gebruik dan wel een volledig pad in je include(), zoals /home/JOUWUSERNAME/domains/JOUWDOMEIN.NL/private_html/da_class.php
Oké, dus ik maak gewoon een mapje aan met die class erin. Vervolgens een nieuw php bestandje met de volgende inhoud:


<?php
include 'httpsocket.php';

$sock = new HTTPSocket;
$sock->connect('JE DOMEIN',2222);

$sock->set_login("INLOGNAAM","INLOGPASS");

$sock->set_method('POST');

$sock->query('/CMD_API_SITE_BACKUP',
    array(
        'action' => 'backup',
        'select0' => 'database'
    ));
$result = $sock->fetch_body();

echo $result;
?>


En die aanroepen met cron, right?
Correct, gebruik wel het volledige pad naar de httpsocket.php, en was je waardes uiteraard aan ;-).
Oké, ik heb beide bestanden geüpload en even met mijn browser naar 'backup.php' gesurft. Ik krijg een blanco scherm.. Is dat de bedoeling? :P

Het pad naar httpsocket.php klopt, want dat was eerst fout (foutmelding), nu krijg ik dus gewoon helemaal niets te zien.

Je zou op zijn minst een result moeten zien.
De backup is gelukt als de Ticket Notifier rechtsbovenaan DA een nieuwe ticket meldt.

- Heb je wel je gegevens (user/pass/domain) goed ingesteld?
- Gebruik eens $sock->set_method('GET'); i.p.v. de genoemde POST.

Zet anders even je error-reporting aan. en display_errors op 1
- Gegevens zijn goed (domain heb ik zonder 'www.')
- GET werkt niet zo min als POST

error-reporting heb ik toch aanstaan? Althans dat denk ik, omdat ik wel een error kreeg toen mijn pad naar httpsocket.php niet klopte..

Reageren