Jump to content
Froxlor Forum
  • 0

backup modul


campari

Question

Moin Moin,

 

ich bin auf der Suche nach einem backupmodul f?r Froxlor. Bei syscp findet man in den Foren eine Menge dazu, jedoch sind die posts sehr alt und es sieht so aus, als ob es das modul nicht mehr gibt. Da wird nun von L?sungen wie reoback, rsync etc. gesprochen.

 

Wie sieht es bei Froxlor aus? Gibt es da bereits ein Modul, das die Kunden ?ber ihr Panel individuelle Backups vornehmen k?nnen, oder ist so ein Modul in Plannung?

 

gru?,

campari

Link to post
Share on other sites

12 answers to this question

Recommended Posts

Ein offizielles Backup-Modul wird es wohl erst mit Froxlor-1.0 geben.

 

Hallo,

arbeitet schon jemand an dem Modul?

 

Ich habe mir f?r SysCP 1.4.2.1 (2) eins geschrieben, das auf meinem Server mit PHP 5.2.6 unter Debian Lenny gut funktioniert. Das k?nnte ich evtl. beisteuern. Ich bin aber kein Programmierer, zur Codequalit?t kann ich also nur sagen, dass es funktioniert...

Mit Dingen wie CVS, Mantis kenne ich mich auch (noch) nicht aus.

 

Macht es unter diesen Umst?nden noch Sinn mein Backupscript auf Froxlor 0.9.3 anzupassen?

 

Gr??e

Julian

Link to post
Share on other sites

Das k?nnte unter Umst?nden auch in der Froxlor-0.9er Reihe noch funktionst?chtig sein, allerdings ist es nicht geplant in der 0.9er Reihe noch gro?e neue Features hinzuzuf?gen (von unserer Seite aus). Die Community w?rde sich sicherlich ?ber ein Backupmodul freuen.

 

Und um die erste Frage zu beantworten: nein, an diesem Modul arbeitet noch keiner, da es - von Abh?ngigkeiten aus gesehen - erst relativ am Schluss entwickelt werden kann.

Link to post
Share on other sites

Hallo,

angesteckt durch Euer Engagment habe ich mich mal hingesetzt und mein Backupmodul auf Froxlor 0.9.3 angepasst.

Anbei f?r Interessierte hier eine kurze Anleitung in 4 Schritten:

 

1. Wir schaffen einen Men?punkt "Backup" im Kundenbereich:

- kopiere backup.tpl (von http://calypso.serverregal.de/public/backup.tpl.txt )

nach /var/www/froxlor/templates/customer/extras/

- in vorhandener Datei /var/www/froxlor/lib/navigation/00.froxlor.main.php Zeile 128 f?ge ein:

array (

'url' => 'customer_extras.php?page=backup',

'label' => 'Backup',

),

- in allen interessanten Sprachdateien unter /var/www/froxlor/lng die Zeile einf?gen:

$lng['crondesc']['cron_backup'] = 'Backuperstellung';

 

2. Wir erweitern die Datenbank um die Backupauftr?ge abzuspeichern und f?r ein paar Einstellungen:

- in der Datenbank, Tabelle "panel_customers" die Spalte "backup_enabled" vom Typ "int(1)" , Standard "0"

hinten anh?ngen.

- in der Datenbank, Tabelle "panel_settings" den neuen Datensatz anh?ngen:

'121', 'customer', 'backup_dir', '#auto_backup'

- in der Datenbank, Tabelle "cronjobs_run" den neuen Datensatz anh?ngen:

'9', 'froxlor/core', 'cron_backup.php', '0', '5 MINUTE', '0', 'cron_backup'

 

3. Wir f?gen den Code ein um die Backupauftr?ge abzuspeichern:

- in vorhandener Datei /var/www/froxlor/customer_extras.php Zeile 42 f?ge ein:

elseif($page == 'backup')

{

$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras_backup");

$result = $db->query("SELECT `backup_enabled` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");

$row = $db->fetch_array($result);

 

$backup_enabled = makeyesno('backup_enabled', '1', '0', $row['backup_enabled']);

 

if(isset($_POST['send']) && $_POST['send'] == 'send'){

$value = ($_POST['backup_enabled'] == '1' ? '1' : '0');

$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `backup_enabled`='" . $value . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");

redirectTo($filename, Array('page' => $page, 's' => $s));

}

eval("echo \"" . getTemplate("extras/backup") . "\";");

}

 

4. Wir schreiben den Code, der das beauftragte Backup durchf?hrt:

- kopiere cron_backup.php (von http://calypso.serverregal.de/public/cron_backup.php.txt )

nach /var/www/froxlor/scripts/jobs

- erzeuge symlink cron_backup.php auf froxlor_master_cronjob.php in /var/www/froxlor/scripts

- in vorhandener Datei /var/www/froxlor/lib/functions/filedir/function.safe_exec.php Zeile 59 erg?nze:

'rm' in 'rm', 'tar', 'mysqldump'

 

Das wars auch schon :-)

Julian

Link to post
Share on other sites

Achtung! Da fehlt der lighttpd Verzeichnisschutz aus dem Syscp Originalpatch von mir.

 

Wer lighttpd laufen hat, erzeugt also ein Backup in einem ungesch?tzten Verzeichnis auf das jeder per HTTP zugreifen kann.

Link to post
Share on other sites

Kann ja der machen, der den Code so freundlich von mir ?bernommen und dann seinen Namen in Authors reingesetzt hat.

 

Ich muss schon sagen, dass ich es unter diesen Umst?nden schon etwas dreist finde, wenn man das ganze kopiert,

 

habe ich mich mal hingesetzt und mein Backupmodul auf Froxlor 0.9.3 angepasst.

 

als sein eignes Werk hinstellt und dann noch ne Sicherheitsl?cken einbaut.

 

Der zus?tzliche trim befehl vorm Verzeichnis k?nnte ?brigens auch noch zu problemen f?hren, wenn Froxlor Leerzeichen mit \ escaped.

 

Die -C Option beim tar k?nnte auch noch ins leere laufen, da die Besagt "wechsle ins Verzeichnis". Die sollte eigentlich als erstes stehn, wenn ich mich recht erinner. Keine Ahnung was so letztendlich rauskommt.

Link to post
Share on other sites

Da stimmt auch noch einiges mit den Pfaden garnicht merke ich grad. Es wird immer nur von $settings['customer']['backup_dir'] gesprochen, allerdings kommt dort nie der Kunden-Docroot zum tragen, d.h. alle Backups werden in das gleiche Verzeichnis geschrieben...

 

Also, ich habe das wie gesagt, als "contribution" hinzugef?gt, allerdings w?r es sch?n, wenn das auch funktioniert.

 

Und was die Tatsache angeht, von wem was gemacht wurde, das bitte ich euch untereinander zu kl?ren

Link to post
Share on other sites

Die o.a. angef?hrte Verwendung des Parameters -C bei tar habe ich gepr?ft, die ist v?llig korrekt. Durch diese Syntax erreicht man das Speichern der Dateipfade im Archiv relativ, anstelle der absoluten Pfade. Dies vereinfacht es beim Restore woandershin r?ckzusichern.

 

Probleme mit diesem LightHttp oder einer der verschiedensten Linux-Distribution kann ich in keinster Weise ausschlie?en. Mein Backup l?uft hier mit Debian Lenny und Apache 2.

 

Wo der Kunden-Docroot fehlt kann ich aber nicht nachvollziehen. Ich habe gerade extra noch mal bei 3 Kundenaccounts Backups gemacht. Jeder erhielt genau seine Backups in sein Kundenverzeichnis. Kannst Du bitte mal N?heres schreiben? Wenn da noch ein bisher unentdeckter Fehler ist, dann w?rde ich den gern beseitigen lassen.

 

Gr??e

Julian

Link to post
Share on other sites

Hallo zusammen,

 

ich hatte mich an dem Skript von monotek schon bei SysCP versucht, bin dabei aber aus irgendeinem Grund gescheitert.

Heute habe ich einen neuen Anlauf genommen und das ganze auf Basis des Wiki?s erneut versucht.

 

Es hat geklappt !

 

vielen Dank an alle , die daran mitgewirkt haben !

 

Andreas

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...