Automatisierte FTP Übertragung

D

dbudde

Mitglied
Hi Boarder,

Ich hab da mal ein kleines anliegen.

Ich habe für die Datensicherung einer SQL Datenbank auf einem Debian System einen Cronjob erstellt, der mir die Daten in eine File ablegt.

Da dieser Server nun aber nicht über entsprechende Tape-Hardware verfügt, war mein gedanke wie folgt:

Ich setze auf meinem Sicherungsserver einen FTP Server auf.
Von dem Linux System verbinde ich mich via FTP auf den Sicherungsserver und schiebe die Sicherung auf den Server.
Da ich das nicht manuell machen will, geht es dabei um eine Automatisierte Lösung.

Ich habe bereits einen Autologon per .netrc geschaffen, also der Login klappt Problemlos.

Mein Eigentliches Problem vor dem ich jetzt stehe ist, dass ich die Verbindung hergestellt habe, aber noch keine Daten Übertragen worden sind.

Meine Frage ist es jetzt, wie übergebe ich ftp oder auch lftp Parameter die mir automatisch einen mput nach der Anmeldung ausführen?!?

Oder die alternative Lösung dazu wäre "lufsmount", wenn jemand damit erfahrungen hat, wäre ich auch da dankbar über Hilfestellung, denn da hab ich das Problem das ich es zwar installiert habe, aber nicht weiß wie ich nun das Modul lade.
Ich bekomme beim erstellen eine lufsmount die folgende Fehlermeldung:

you don't have kernel lufs support (check whether the lufs
module is available/loaded)

Kann mir jemand aus der Patsche helfen?

Danke euch schonmal im vorraus.


Dennis Budde
 
Du kannst doch in der .netrc die Befehle einfügen ...

machine place.you.connect.to
login USERIDGoesHere
password PasswordGoesHere
macdef init
Insert any FTP commands you want to run in here

Eine andere möglichkeit wäre z.B. ncftp - das ist auch Scriptbar ....

Gehen soll auch:
#!/bin/sh
ftp -n localhost <<!
quote user YourUserName
quote pass YourPassword
binary
put file1 file2
quit
!

schau mal hier - http://www.experts-exchange.com/Programming/Programming_Platforms/Unix_Programming/Q_10292843.html
 
Besseren Vorschlag, weil weit weniger kompliziert:
Nimm einfach rsync, oder scp, ssh via tar...
Damit ( rsync) sparst du dir sogar noch Downloads von nicht geänderten Dateien.

Vorher erstellst du dir am Besten einen ssh key und schiebst den pubkey auf die Source-maschine.
Dann auf der Backup-kiste im Ordner ~/.ssh in die config z.B.

Host Source
User username
HostName xxx.xxx.xxx.xxx
ForwardX11Trusted yes
IdentityFile ~/.ssh/dein_rsa
Protocol 2

wobei source der von dir frei wählbare Alias und xxx.xxx.xxx.xxx die Ip oder auch der FQDN des Sources Host ist, username ist der username auf dem Quellhost.
Dann kannst du dich direkt über ssh oder via scp oder eben rsync frei bedienen.

Dann ein Script auf dem Backuphost:

#!/bin/bash
echo "Am $(date) sync fuer Sorce-server gestartet!"
cd /backup/
rsync --delete -avR Source:"/home/htdocs/quelle" /backup/


natürlich geht dann auch sowas wie :
ssh Sources:" tar -czv /quelle/auf/Source" |(cd /backup/local/;tar -xzv )
oder via scp direkt.
Der Fantasie sind keine Grenzen gesetzt :D

Gruß Wolfgang
 
Eine noch viel einfachere Loesung: wenn es nur um die DB-Sicherung geht -> mach doch einfach den mysqldump vom Sicherungsserver aus? :)
 
Vielen Dank Devilz,


Der Parameter "macdef init" in der .netrc hatte mir gefehlt.
Auch den anderen Vielen Dank für die Antworten, aber die FTP Parameter waren die die ich brauchte.

Zu Wolfgang:

rsync wäre schon ein wenig zu hoch gegriffen da es sich bei der ganzen Geschichte um eine einzige Datei die reinen Text enthält und mit nun mehr 3 Monaten Daten auf eine Wahnsinngröße von 74kb angewachsen ist.

zu Tronix:

Auch hier Danke für den Hinweis. Wäre natürlich das einfachste gewesen, aber passte nicht in unser Sicherheitskonzept, da der zu Sichernde Server bei uns in der DMZ steht und der Sicherungsserver eben im LAN und das ausgeklügelte System hier lässt mir letztlich nur noch die ftp möglichkeit von der DMZ ins LAN.
Jetzt fragt sich wahrscheinlich jede FTP? von DMZ ins LAN? Ja! das hat schon sinn und verstand, auch wenn es erstmal augenscheinlich eine Sicherheitslücke aufwirft.


Dank an die Boarder

Dennis
 
Naja FTP ist unverschlüsselt...

Bessere Idee:
ssh-keys austauschen um passwortlosen Login von sicherungsserver auf dbserver zu ermöglichen. Key lässt sich sogar so anpassen, dass nur ein Kommando möglich ist auszuführen. Vom sicherungsserver auf dem dbserver via ssh-command den mysqldump ausführen und lokal auf dem Sicherungsserver in eine Datei sichern!

[sicherunggsserver] echo `ssh user@dbserver mysqldump -h localhost ...` > mysqldumpdatei

So ähnlich sollte es gehen ;o). Vorteile liegen auf der Hand!
 

Ähnliche Themen

Bind9, DNS ohne Domäne

.netrc ftp übertragun

proFTPd Fehler in Verbindung mit mySQL

Open-Xchange auf OpenSuse mit Commu. Installer - Compiler Fehler

Zurück
Oben