bestimmte Dateien automatisch auf fremdes Laufwerk sichern

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    bisher habe ich von/nach "größeren" Aktionen meine SD-Karte mit Win32DiskImager gesichert. Beruflich bedingt erfolgte das unregelmäßig und in eher großen Abständen. Nun habe ich aber eine Temperaturmessung mit RRD-Datenbank sowie ein MiniDLNA mit entsprechender Datenbank laufen und ich merke langsam, dass es schade wäre, wenn die verlogen gingen oder es größere Lücken gäbe.
    Inspiriert von Framps Tutorial möchte ich mein Sicherungssystem automatisieren. Allerdings möchte ich die große Sicherung weiterhin mit Win32DiskImager machen und zwischendurch regelmäßig nur die Datenbanken und evtl. die Ordner, in denen meine (sich entwickelnden) Skripte liegen, sichern. Allerdings habe ich noch einige Fragen.

    Es geht also um einzelne Dateien oder Ordner, von denen ich so 3...4 Generationen aufbewahren möchte. Könnte ich da statt des dd-Befehls auch den cp-Befehl nutzen?

    Wo ich überhaupt noch keinen Plan habe ist, wie ich die Sicherungen auf einen fremden Speicherplatz bekomme. Ich möchte also die Daten nicht auf ein angehängtes Laufwerk bringen, sondern entweder auf einen freigegebenen Ordner eines anderen Pi oder auf einen an der FritzBox 7170 eingesteckten 4GB-Sticks. Dort sind nur Dateien des Anrufbeantworters drauf, also jede Menge Platz.

    Wenn nichts Gravierendes dagegen spricht, bin ich für FritzBox-Variante. Framp deutete an, dass das geht.
    Aber ich weiß nicht, wie ich das anstellen kann. Was muss ich bei der FB machen und wie kann ich das in den Pi einbinden? Ich vermute, auch mounten, wie eine externe Festplatte.... ?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (6. Februar 2014 um 10:57)

  • bestimmte Dateien automatisch auf fremdes Laufwerk sichern? Schau mal ob du hier fündig wirst!

  • Hallo DocAdams,

    in einem Industrieprojekt, in dem ich den Raspberry Pi verbaut habe, habe ich cp-Kommando mit folgenden Parametern aufgerufen

    Code
    # 2. Kopieren von Quelle nach Ziel                             #
    #    cp -a /quelle/. /ziel/                                    #
    #    kopiert von einer Quelle                                  #
    #    alle Verzeichnisse und Dateien (inkl. versteckte)         #
    #    unter Beibehaltung der Dateiattribute                     #
    #    (Datumszeitstempel, Rechte, Eigentümer, ...)              #
    #    rekursiv auf das Ziel                                     #



    Das Linux-Kommand cp -a /quelle/. /ziel/ kopiert alle Dateien des Quellverzeichnisses (inkl. versteckter Dateien) rekursiv unter Beibehaltung aller Dateiattribute (Datumszeitstempel, Rechte, Eigentümer, ...) in das Zielverzeichnis. Vermutlich ist es dieser Modus, wie Du die Dateien kopiert haben möchtest.

    Wenn Du keine versteckten Dateien kopieren willst, dann ersetzt du den Punkt durch *.

    Leider habe ich keine Fritzbox. Aber wenn dort ein USB-Stick eingesteckt ist, sollte der Raspberry Pi das irgendwie mitbekommen.

    Wenn die Fritzbox bzgl. USB-Medien so reagiert wie ein aktiver Hub, dann erfährst Du über folgende Kommandos von der Existenz des USB-Sticks

    Code
    1. lsusb -t 2. df | grep /dev/sd | awk '{print $x}'3. mount | grep usb-storage | awk '{print $y}'

    lsusb -t teilt Dir mit, unter welcher Device-Nummer ein USB-Medien erkannt worden ist. Mit Hilfe dieser Device-Nummer und der Einrückung kannst Du eine Formel aufstellen, in welchem USB-Port dieses Medium steckt (falls diese Information wichtig ist).

    Für x setzt Du bitte die Spalte ein, in der im Linux-Kommando df die Information /media/ steht.
    Für y analog die Spalte, in der im Linux-Kommando mount die Information /media steht.

    Bei einem aktiven Hub kannst Du ein USB-Medium dann ansprechen, wenn alle drei Kommandos ein Ergebnis geliefert haben.

    Für das obige Beispiel ist dann /quelle/ das Verzeichnis auf Deinem Raspberry, von dem Du Dateien kopieren willst - /ziel/ ist dann irgendwas mit /media/### - was auch immer die Linux-Kommandos df und mount ausspucken.

    Gutes Gelingen!

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    2 Mal editiert, zuletzt von Andreas (8. Oktober 2017 um 11:20)

  • Die Fritzbox unterstützt mehrere Möglichkeiten den USB-Stick einzubinden. Die einfachste dürfte vermutlich das Netzlaufwerk sein. Dann kannst du den Stick via FTP ansprechen. Benutzerdaten findest du im Menü der Fritzbox (User müsste "ftpuser" heißen). Den "entfernten USB-Anschluss" (ich glaube so hieß das) würde ich persönlich nicht nutzen, was aber nur daran liegt, dass ich keine Ahnung hab, ob und wie er sich in Raspian einbinden lässt.

  • Hallo,

    ein lsusb -t ergab das:

    Code
    [email="pi@fhem"]pi@fhem[/email] ~ $ lsusb -t
    /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
        |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
            |__ Port 3: Dev 4, If 0, Class=vend., Driver=rtl8192cu, 480M

    was nicht auf entfernte Freigaben hindeutet, oder?

    Aber ich kann mittels ftp:\\ftpuser@192.168.178.1 und Nutzer ftpuser und Passwort innerhalb meines Netzwerks auf die Ordner zugreifen. Das wird der Weg sein.
    Aber wie binde ich das in den Pi ein? Zumal wohl Benutzername und Passwort erforderlich sind.

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (6. Februar 2014 um 13:25)

  • FTP ist in Raspian nicht direkt integriert, aber als ich das vor kurzem brauchte, fand ich hier im Forum gute Tutorials. Da ich den Link aber nicht mehr griffbereit habe, kannst du die Suchfunktion genauso gut nutzen wie ich ;)
    Benötigst du für das Script zum Sichern dann auch noch Hilfe?

  • Vielleicht könnte ncftpput die Lösung sein, allerdings muss ich mich da erst mal einlesen, z.B. wie hier, wobei es mir nur um die FTP-Funktionalität geht.
    Bis hierhin aber schon mal Danke :)

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

    Einmal editiert, zuletzt von docadams (6. Februar 2014 um 14:23)

  • Nochmal zur Klarstellung:

    Du möchtest Dateien vom PI auf ein anderes System mithilfe FTP's übertragen?

    Dann könntest du eigentlich problemlos den normalen ftp client mithilfe eines bash Scripts nutzen, entweder nativ

    oder über einen Trick mithilfe expect (apt-get install expect)

    Den Login kann man aber auch über die Datei ~/.netrc automatisieren, zum Beispiel so: http://www.linux-fuer-alle.de/doc_show.php?docid=27&catid=11

  • Ein einfaches apt-get install ftp sollte es auch tun ;)

    Welche Parameter der dann braucht für Benutzername, PW usw steht in der manpage von ftp.

    Ist wenn einmal zusammengewurstelt sicher die schlankste und schnellste Lösung für den FTP-Transfer. Auslösen lassen kannst du dir das dann mittels eines Cronjobs.

  • Vielen Dank für eure Antworten.

    @Nohagie: Dein Link ähnelt etwas der Herangehensweise von Framp. Da bleibe ich bei ihm, zumal ich die Einzelschritte gut nachvollziehen kann. Der dort vorhandene Link zur Sicherung auf Dropbox ist recht interessant, aber für meine Belange etwas übertrieben.

    Die meisten Backup-Ideen gehen davon aus, dass die Sicherung auf einen an den Pi angesteckten und gemounteten Speicher gehen. Aber genau das will ich nicht. Der Speicherort sollte zumindest in einem anderen, möglichst weit entfernten Zimmer sein. Und das ist die FritzBox. Die hängt sogar an einer anderen Stromphase.
    Aber den FritzBox Speicher kann man wohl nicht an den Pi mounten. OK dann per FTP.

    Wenn dem so ist, müsste ich also 2 Schritte tun.
    a) auf der RasPi-SD-Karte einen BackupOrdner erstellen und in den dann nach Framps Methode 3 Backup-Generationen der Datenbank bzw. meines gesamten /home/pi speichern.
    b) mit Meigrafds Bash-Skript diesen gesamten BackupOrdner dann per FTP zum FritzBox-Speicher kopieren, der den vorhandenen Ordner überschreibt.

    Während dieses Kopiervorgangs darf dann nicht gerade der Strom ausfallen, oder so. Nagut, man kann es auch übertreiben mit der Sicherheit.

    Ist das ein gangbarer Weg oder zu umständlich?

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

  • Hallo,
    komme endlich mal wieder dazu, mich dem Problem zu widmen.
    Dank eurer Tipps ist es mir inzwischen gelungen, in einem Ordner die 4 letzten Sicherungen meiner Datenbank zu speichern. Sie haben diese Namensstruktur: "sic-werte-20140220-105439.rrd"
    Ebenfalls ist es mir schon gelungen, Kontakt mit der FritzBox aufzunehmen und mit FTP "etwas" zu kopieren. Allerdings noch nicht so, wie ich es mir wünsche.

    2 Hürden sehe ich.
    - Der Befehl put "sic-werte-*.*" kopiert mir nur die jeweils älteste Datei rüber, vermutlich, weil sie an erster Stelle steht. Sicher muss da eine Schleife konstruiert werden, damit alle vier Dateien kopiert werden, der Platzhalter * funktioniert nicht. Auch der Befehl mput kopiert nur eine Datei rüber.

    Code
    [email="pi@fhem"]pi@fhem[/email] ~/skripte/backup $ ./ftp1.sh
    Local directory now /home/backups
    mput sic-werte-20140220-105838.rrd? mput sic-werte-20140220-111257.rrd? mput sic-werte-20140220-111423.rrd? mput sic-werte-20140220-114415.rrd? [email="pi@fhem"]pi@fhem[/email] ~/skripte/backup $


    - Auf der FritzBox werden keine Dateien gelöscht. Es gibt zwar den FTP-Befehl delete, mit dem ich die 4 auf der FB bestehenden Dateien löschen löschen möchte, klappt aber auch nicht.

    Der betreffende Teil des Skripts sieht momentan so aus:

    Code
    ftp -n $Server <<END-Of-Session   # -n option disables auto-logon
    user $Username "$Password"
    binary
    lcd $localDirectory
    cd $remoteDirectory
    delete "sic*"
    put "sic*"
    bye
    END-Of-Session

    Viele Grüße
    DocAdams

    1x RaspberryPi 2, 1x RaspberryPi 3, 1x OpenELEC, 1x RaspberryPi 4 mit ioBroker ,

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!