Dateien vom Hoster auf die DS

Status
Für weitere Antworten geschlossen.

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Moin moin

ich mache täglich eine Kopie meiner Datenbanken der Seiten dich ich bei All-Inkl.de habe.
Diese Dateien lade ich dann "per Hand" auf meinen PC runter und schiebe sie dann auf die DS.

Geht das denn auch einfacher indem ich die Dateien nach den Sichern bei All-Inkl gleich automatisch auf die DS schicken lasse ?

Wie kann man das realisieren ???

1000 Dank
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
Erste Idee: Du downloadest einfach direkt in ein Verzeichnis auf der DS.
Zweite Idee: Cloud Station. Du downloadest ist den lokalen Cloud-Ordner. Dieser wird dann automatisch mit der DS synchronisiert.

Ob sich der Download der Daten bei All-Inkl.de durch die DS automatisieren lässt weiß ich nicht. Was aber sicherlich die beste Lösung wäre.
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Das Problem ist das ich nicht den Umweg über den PC machen möchte da ich diesen ab und zu mal neu aufsetze bzw den ab und zu mal austausche.
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
was hälst Du von Idee 1?
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Wenn ich wüsste wie man das anstellt :confused:
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
Welche OS hat Dein Rechner? Windows vermutlich. Unter Windows kannst Du durch Pfadangabe \\IP_der_DS\Name_eines_Gemeinsamen_Ordners_auf_der_DS in der Adresszeile des Dateiexplorers auf die Daten Deiner DS direkt zugreifen (Windows frägt dann noch nach Benuterkonto und Passwort der DS). Wenn Du im Internetbrowser etwas herunter lädst, kannst Du doch ein Ziel eingeben. Das wäre Dein Ziel.

Du kannst das in Windows auch fest verbinden als Laufwerksbuchstaben (z.B. e: ) über Windows Dateiexplorer > Computer > Netzlaufwerk verbinden.
Oder es als Favoriten im Windows Dateiexplorer ablegen.
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Moin moin
ja ich hab W10.
Aber nach der Methode geht es ja wieder über den PC.

Gibt es denn keine Möglichkeit von der DS direkt zu dem Server von All-Inkl zu synchronisieren ?
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
dann bin ich leider raus. Kenne All-Inkl.de nicht und weiß nicht, was für technische Möglichkeiten die anbieten.
 

JudgeDredd

Benutzer
Mitglied seit
12. Nov 2009
Beiträge
1.066
Punkte für Reaktionen
9
Punkte
64
Kenne All-Inkl.de nicht und weiß nicht, was für technische Möglichkeiten die anbieten.

Das ist genau der Punkt. Was beinhaltet denn Dein Tarif bei "All-Inkl.de" alles ?

Möglichkeiten gibt es natürlich.
  • Um eine DB zu sichern, musst Du natürlich als aller erstes bei Deinem Hoster einen DB-Dump erstellen. (Scripts hierzu sind DB abhängig und im Netz ausreichend zu finden)
  • Diesen Dump kannst Du nun entweder via
    Rich (BBCode):
    curl -T {Quellverzeichnis}/{Quelldatei} ftp://{FTP-URL der DiskStation} --user {FTP-User der DS}:{Passwort}
    auf der DS ablegen.
  • Oder Du lässt das File von der DS bei Deinem Hoster abholen:
    Rich (BBCode):
    wget -O {Zielverzeichnis}/{Zieldatei} --ftp-user={FTP-User Deines Hosters} --ftp-password={FTP-Passwort Deines Hosters} ftp://{FTP-URL der Datei bei Deinem Hoster}
Das ganze dann bevorzugt automatisiert via CRON.
 
Zuletzt bearbeitet:

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Moin moin

sichern lasse ich mir die Datenbanken schon via Cron.
Das funktioniert seit vielen Jahren perfekt ohne Zwischenfälle.

Das Problem ist das ist nach jedem PC-Wechsel das ftp-Programm ftp-uploader immer wieder neu installieren muß, dann die ganzen Daten für den Zugriff eingeben muß usw. usw.
Hab ich die Files der Datenbanken dann auf meinem Rechner muß ich sie noch auf den Server schieben.

DAS alles will ich umgehen und die Files direkt von all-inkl auf meine DS verschieben.
Vorzugsweise sollen die dann bei all-inkl gelösche werden.

Das Dump was bei der Sicherung der Datenbank entsteht ist ein File mit dem Datum der Sicherung(Beispiel: dump_xxxxxxxxxx_20130120_2004.sql.gz).
Das bedeutet das sich die Bezeichenung des Files täglich ändert.

Das ist die Herrausforderung.

Mit dem Code was du @JudgeDredd gepostet hast kann ich absolut nichts anfangen.So tief bin ich nicht in der Materie drin ... leider.

Danke
 

frankyst72

Benutzer
Mitglied seit
01. Jun 2015
Beiträge
1.959
Punkte für Reaktionen
8
Punkte
58
Das Problem ist das ist nach jedem PC-Wechsel das ftp-Programm ftp-uploader immer wieder neu installieren muß, dann die ganzen Daten für den Zugriff eingeben muß usw. usw.
dann bietet sich eine virtuelle Maschine an, auf der Du die Installation und Konfiguration durchführst und dann diese einfach nur von Rechner zu Rechner mit nimmst.

Ich halte aber die Lösung von JudgeDredd für die einzig Wahre. Dann musst Du Dich halt mit der Commando-Oberfläche auseinandersetzten. Und so unverständlich schauen die Befehle nicht aus und im Internet findest man sicher viel dazu.
 

JudgeDredd

Benutzer
Mitglied seit
12. Nov 2009
Beiträge
1.066
Punkte für Reaktionen
9
Punkte
64
Tratschcafe schrieb:
Mit dem Code was du @JudgeDredd gepostet hast kann ich absolut nichts anfangen.So tief bin ich nicht in der Materie drin ... leider.
Also gut, als erstes mal die Frage, wie erstellst Du denn den SQL Dump bei "All-Inkl" ?
Was genau macht der CRON denn dort ? Bestimmt gibt es ein Script, das von diesem aufgerufen wird.
Dann könntest Du die Code-Zeile "curl ....." einfach dort anfügen.

Voraussetzungen auf der DS:
  • Erreichbarkeit
    Die DS muß dafür via FTP von extern erreichbar sein.
  • Benutzer
    Du musst einen neue Benutzer anlegen oder einen existierenden verwenden, der über FTP Rechte verfügt.

Wenn Du diese Voraussetzungen erfüllt hast und mit dem "curl ..." nicht weiterkommst, melde Dich nochmal.
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Moin moin

ich lasse täglich ein Script mittels Cronjob starten.
Das Script sieht so aus:
<?php
######## einstellungen #############################################

$db_name = "XXXXXXXXXXXXXXXXXXXX";
$db_passwd = "XXXXXXXXXXXXXXXXXXXX";

$downloadlink_erstellen = "nein";

$bestaetigungsmail_senden = "ja";
$bestaetigungsmail_adresse = "XXXXXXXXXX@XXXXXXXXXX";
$bestaetigungsmail_betreff = "[BACKUP] Ihr Backupscript";

$sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql";

####################################################################

### daten überprüfen
if ( $db_name == "IhreDatenBank" or $db_passwd == "IhrDatenBankPasswort" )
{
die("FEHLER: Sie müssen zunächst Ihre Datenbankdaten im Script eingeben!");
}
if ( file_exists($sql_file) or file_exists($sql_file . ".gz") )
{
die("FEHLER: Das zu erstellende Dump existiert bereits!");
}

## dump erstellen
exec("mysqldump -u $db_name -p$db_passwd --quick --allow-keywords --add-drop-table --complete-insert --quote-names $db_name >$sql_file");
exec("gzip $sql_file");

### größe ermitteln
$datei = $sql_file . ".gz";
$size = filesize($datei);
$i = 0;
while ( $size > 1024 )
{
$i++;
$size = $size / 1024;
}
$fileSizeNames = array(" Bytes", " KiloBytes", " MegaBytes", " GigaBytes", " TerraBytes");
$size = round($size,2);
$size = str_replace(".", ",", $size);
$groesse = "$size $fileSizeNames[$i]";

### nachricht erstellen
$message = "Ihr Backup der Datenbank <b>" . $db_name . "</b> wurde durchgeführt.<br>";
$message .= "Die Größe des erstellten Dumps beträgt <b>" . $groesse . "</b>.<br>";

if ($downloadlink_erstellen == "yes" or $downloadlink_erstellen == "ja" or $downloadlink_erstellen == "1")
{
$link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$link = str_replace(basename(__FILE__),$datei,$link);
$message .= "Downloadlink: <a href='" . $link . "'>" . $datei . "</a>";
}

## nachricht ausgeben
echo $message;

### mail versenden
$message = str_replace("<br>", "\r\n", $message);
$message = str_replace("<b>", "", $message);
$message = str_replace("</b>", "", $message);
if ($bestaetigungsmail_senden == "yes" or $bestaetigungsmail_senden == "ja" or $bestaetigungsmail_senden == "1")
{
if(!preg_match( '/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/' , $bestaetigungsmail_adresse))
{
echo "<br>FEHLER: Mail konnte nicht versendet werden, da die Adresse ungültig ist!";
}
else
{
mail($bestaetigungsmail_adresse, $bestaetigungsmail_betreff,
$message,"From: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Reply-To: backupscript@{$_SERVER['SERVER_NAME']}\r\n")
or die("FEHLER: Mail konnte wegen eines unbekannten Fehlers nicht versendet werden");
echo "<br>Bestätigungsmail wurde erfolgreich versandt!";
}
}
?>

Das läuft wie geschrieben schon viele Jahre zuverlässig.

Da ich mich mit solchen Codes nicht auskenne kann ich dir auch nicht viel dazu schreiben.

Die DS ist von außen erreichbar.Soll heißen das ich egal von wo immer auf die Dateien zugriff habe.
Einen Benutzer anzulegen der diese Recht hat ist auch kein Problem da ich Admin bin.

Gruß
 

JudgeDredd

Benutzer
Mitglied seit
12. Nov 2009
Beiträge
1.066
Punkte für Reaktionen
9
Punkte
64
PHP_Script schrieb:
.....
echo "<br>Bestätigungsmail wurde erfolgreich versandt!";
}
}
exec("curl -T $datei ftp://{FTP-URL der DiskStation} --user {FTP-User der DS}:{Passwort}");
?>
Dann füge es doch mal an das Ende der PHP Datei an.
Die Variable $datei sollte die ja Quelldatei enthalten. Die anderen Parameter musst Du dann selbst ergänzen.
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
öhm ... das versteh ich nicht wirklich.
Wie muss die Zeile denn dann heißen wenn die Datei folgende Namen hat:

dump_benutzername_20151006_0000.sql.gz
dump_benutzername_20151005_0000.sql.gz
dump_benutzername_20151004_0000.sql.gz
dump_benutzername_20151003_0000.sql.gz

Es ändern sich täglich nur die Zahlen (Datum + Urzeit der Sicherung).
 

JudgeDredd

Benutzer
Mitglied seit
12. Nov 2009
Beiträge
1.066
Punkte für Reaktionen
9
Punkte
64
Die Variable $datei habe ich ja schon eingesetzt. Wenn ich das PHP Script richtig gelesen habe. Von dir sind nur Anpassungen innerhalb der geschweiften Klammern anzupassen.
 

Tratschcafe

Benutzer
Mitglied seit
03. Nov 2014
Beiträge
351
Punkte für Reaktionen
7
Punkte
24
Ok ... 1000 Dank erst mal für die Hilfe.
Leider werd ich das heute vielleicht nicht mehr schaffen.

Aber ich melde mich wenn es funktioniert oder andere Probleme auftreten.

1000 Dank
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat