Server Mirror Erstellen
lima-city → Forum → Heim-PC → Software
benutzer
benutzername
buffer
code
datei
dateiname
datum
ftp
geile sache
host
idee
jemand
mustermann
netz
packen
server
string
telnet
verbindung
verzeichnis
-
Hallo,
Ich benutze ja Load-Balancing um 5 Server über nur eine IP Erreichbar zu machen.
Das System funktioniert soweit Sehr Gut ;).
Nun habe ich aber 1 Server frei bekommen, und möchte nun, falls der andere WebServer ausfällt, diesen als Mirror benutzen.
Weiß jemand vielleicht ein einfachen als ich es mir gedacht hab?
Meine Idee war nämlich, das ich Backups von Server 1 mache, und diese dann durch wget ( also per HTTP ) auf den anderen Server kopiere und dort entpacke.
Das Problem ist nur, das wenn jemand den Link herausfinden sollte, das der dann alle HTML/PHP Dateien + die MySQL Datenbanken mit Daten und so bekommt.
Kennt jemand von euch einen Sichereren weg?
PS: Ich wünsche jedem von euch einen Schönen Ostern. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wie wäre es einfach mit .htaccess Schutz?!
Jo, auf die Idee kam ich auch schon.
Ich würde die Daten mittels bzip packen und mittels PHP+FTP auf den anderen Server übertragen.
bzip O.o. Ich benutze tar, ist viel einfacher zu benutzen ;).
per PHP also übertragen :/. Naja ich weiß nicht. eher dann wget+FTP.
Aber ich warte mal auf weitere Ideen, die Beste wähle ich dann aus ^^.
-
bzip weil kleiner als Tar.
<?php /** * @return bool * @param string $in * @param string $out * @desc compressing the file with the bzip2-extension */ function bzip2 ($in, $out) { if (!file_exists ($in) || !is_readable ($in)) return false; if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) )) return false; $in_file = fopen ($in, "rb"); $out_file = bzopen ($out, "wb"); while (!feof ($in_file)) { $buffer = fgets ($in_file, 4096); bzwrite ($out_file, $buffer, 4096); } fclose ($in_file); bzclose ($out_file); return true; } /** * @return bool * @param string $in * @param string $out * @desc uncompressing the file with the bzip2-extension */ function bunzip2 ($in, $out) { if (!file_exists ($in) || !is_readable ($in)) return false; if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) )) return false; $in_file = bzopen ($in, "rb"); $out_file = fopen ($out, "wb"); while ($buffer = bzread ($in_file, 4096)) { fwrite ($out_file, $buffer, 4096); } bzclose ($in_file); fclose ($out_file); return true; } ?>
Oder per Konsole: tar cfvj [ARCHIV].tar.bz2 [VERZEICHNIS1] [DATEI1]
Eine Datei mittels PHP zu übertragen, ist ebenso einfach:
<?php // Diese Variablen bitte ändern $ftp_server = "ftp.meinserver.de"; $benutzername = "mustermann"; $passwort = "geheim"; // Die Verbindung herstellen $connection_id = ftp_connect($ftp_server); // Mit Benutzername und Kennwort anmelden $login_result = ftp_login($connection_id, $benutzername, $passwort); // überprüfen ob alles gutgegangen ist if ((!$connection_id) || (!$login_result)) { echo "<H1>Ftp-Verbindung nicht hergestellt!<H1>"; echo "<P>Verbindung mit ftp_server als Benutzer $benutzername nicht möglich!</P>"; die; } else { echo "<P>Verbunden mit ftp_server als Benutzer $benutzername</P>"; } // Die aus dem Forumular übergebenen Daten abfragen $zieldatei = $_POST['zieldatei']; $lokale_datei = $_POST['lokale_datei']; // Hochladen der datei $upload = ftp_put($connection_id, $zieldatei, $lokale_datei, FTP_ASCII); // Upload-Status überprüfen if (!$upload) { echo "<P>Ftp upload war fehlerhaft!</P>"; } else { echo "<P>Datei $slokale_datei auf $host als $zieldatei geschrieben</P>"; } // Schließen der Verbindung ftp_quit($connection_id); ?>
So... Zusammengefasst sähe das Ganze so aus (Quick & Dirty):
<?php $ftp_server = "ftp.meinserver.de"; $benutzername = "mustermann"; $passwort = "geheim"; $dateiname = "backup_".time().".bz2"; $verzeichnis = "das-zu-sichernde-verzeichnis"; $uploadverzeichnis = "httpdocs/"; function bzip2 ($in, $out) { if (!file_exists ($in) || !is_readable ($in)) return false; if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) )) return false; $in_file = fopen ($in, "rb"); $out_file = bzopen ($out, "wb"); while (!feof ($in_file)) { $buffer = fgets ($in_file, 4096); bzwrite ($out_file, $buffer, 4096); } fclose ($in_file); bzclose ($out_file); return true; } if(bzip2($verzeichnis, $dateiname)) { $connection_id = ftp_connect($ftp_server); $login_result = ftp_login($connection_id, $benutzername, $passwort); if ((!$connection_id) || (!$login_result)) { echo "<H1>Ftp-Verbindung nicht hergestellt!<H1>"; echo "<P>Verbindung mit ftp_server als Benutzer $benutzername nicht möglich!</P>"; die; } else { echo "<P>Verbunden mit ftp_server als Benutzer $benutzername</P>"; } $zieldatei = $_POST['zieldatei']; $lokale_datei = $_POST['lokale_datei']; $upload = ftp_put($connection_id, $uploadverzeichnis.$dateiname, $dateiname, FTP_ASCII); if (!$upload) { echo "<P>Ftp upload war fehlerhaft!</P>"; } else { echo "<P>Datei $slokale_datei auf $host als $zieldatei geschrieben</P>"; } ftp_quit($connection_id); } else { echo "Fehler beim Packen des Verzeichnisses ".$verzeichnis."."; } ?>
Aber wie du es letztlich machst, ist natürlich dir überlassen :) Lediglich die .htaccess solltest du nicht vergessen. -
Hm, wie greifst du auf die Kisten denn zu? Per Telnet? Ansonsten kenn ich da voll die geile Sache, nennt sich sFTP und läuft über SSH.
Allerdings ist es mit nem simplen
nicht getan, was ist, wenn dein Server Numero 1 abraucht, jemand auf den 2. seine neusten Clips schiebt und der 1. dann wieder ans Netz geht? Eventuell wäre auch rSync die passende Lösung…scp -r benutzer@1.meineschmutzigesspeichercluster.xxx:/var/www/p0rn /var/www/p0rn
Beitrag zuletzt geändert: 24.4.2011 3:10:21 von we-know-you -
Hm, wie greifst du auf die Kisten denn zu? Per Telnet? Ansonsten kenn ich da voll die geile Sache, nennt sich sFTP und läuft über SSH.
Allerdings ist es mit nem simplen
scp -r benutzer@1.meineschmutzigesspeichercluster.xxx:/var/www/p0rn /var/www/p0rn
nicht getan, was ist, wenn dein Server Numero 1 abraucht, jemand auf den 2. seine neusten Clips schiebt und der 1. dann wieder ans Netz geht? Eventuell wäre auch rSync die passende Lösung…
Darüber sorgen gemacht hätte ich mir erst wenn es passiert wäre ^^.
Telnet pfui. sFTP und SSH ist mir bekannt ;).
rSync ist keine schlechte Idee.
Danke, für die Hilfe, hab mich schon Entschieden und auch schon fast fertig mit dem konfigurieren :D.
Ich wünsche euch noch einen Schönen tag :]. -
Danke, für die Hilfe, hab mich schon Entschieden und auch schon fast fertig mit dem konfigurieren
Und ie machst du es nun? -
Ich hab es nun mit rSync.
Recht einfach, schnell und gut. ;).
Der Mirror wird jede Stunde neu angelegt, dadurch das es nur 80GB in Verwendung sind, ist es also kein Großer Traffic und es geht ganz schnell.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage