simpleremotebackup.sh zur SFTP-Übertragung

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ausnahmsweise jetzt einmal nichts zu raspiBackup ...

    Im Thread

    Rebri
    3. März 2022 um 11:45

    war die Frage nach einem Script aufgekommen, mit dem man einfach ein Verzeichnis per SFTP auf einen Webserver o.ä. hochladen kann.

    Sozusagen als Backup nutzbar.

    Ich habe in dem Thread aus meinem ursprünglichen Einzeiler

    Code
    lftp -e 'lcd /media/ssd/Weewx_Sicherungen && mirror --reverse --verbose -O /files/Weewx_Sicherungen ; quit' sftp://username:password@host:port

    dann schnell einen aufgehübschten 50-Zeiler gemacht. Wie das halt so geht beim Programmieren... ^^

    Zur weiteren Pflege habe ich das Script nun bei Github untergebracht: https://github.com/gchriz/simpleremotebackup.sh

    Die ursprünglichen Versionen lasse ich aber in o.g. Thread stehen.

    Hier nun eine kurze Beschreibung:

    simpleremotebackup.sh

    Ein einfaches Backup-Skript zum Kopieren eines lokalen Verzeichnisses via SFTP auf einen entfernten Server.

    Intern verwendet wird das Program lftp.


    Viel Spaß mit dem Script, allerdings auf eigenes Risiko! Ich übernehme keinerlei Garantien.

    Optionale Erzeugung eines Basisverzeichnis am Ziel mit dem Namen des Quellverzeichnisses

    Es kann der Name des Quellverzeichnisses (basename) als Verzeichnis auf dem Zielserver angelegt werden.

    Oder alternativ nur der Inhalt des Quellverzeichnisses zum Ziel kopiert werden.

    Siehe bei den Beispielen unten (TGTCREATEBASEDIR).

    Optionale Versionierung (VERSIONDIR)

    • keine Versionen, nur ein Zielverzeichnis
    • ein Unterverzeichnis pro Datum (JJJJ-MM-TT)
    • ein Unterverzeichnis pro Tag der Woche (1..7)
    • ein Unterverzeichnis pro Tag der Woche (Mo..So, je nach locale)
    • ein Unterverzeichnis pro Woche (W01..W53) mit Unter-Unterverzeichnissen pro Tag der Woche (1..7)
    • ein Unterverzeichnis pro Woche (W01..W53) mit Unter-Unterverzeichnissen pro Wochentag (Mo..So, je nach locale)
    • ein Unterverzeichnis pro Monat (01..12) mit Unter-Unterverzeichnissen pro Tag (01..31)

    Konfiguration

    Die oben vorgestellten Verhaltensweisen können direkt im Quelltext des Skriptes konfiguriert werden.

    Dort sind auch weitere Details erklärt.

    Beispiel

    Mit zwei zu sichernden Dateien in 'SRCDIR' '.../data'

    an einem 'Sonntag, 6. März 2022' produzieren obige Variationen der Versionierung folgende Strukturen im Zielverzeichnis:

    Hinweise

    * lftp hat für die hier intern verwendete Funktion "mirror" neben vielen anderen auch eine Option --delete, mit der auf der Zielseite überschüssige, also nicht zur aktuellen(!) Kopieraktion gehörende Dateien gelöscht werden.

    Das ist ein hilfreiches Feature, aber auch sehr gefährlich:

    Es werden leicht zu viele Dateien/Verzeichnisse gelöscht, und zwar, wenn man ein Zielverzeichnis angibt, welches auch parallel abgespeicherte Daten enthält, die nicht zur aktuellen(!) Kopieraktion gehören. z.B. bei Versionierung.

    Deshalb ist --delete zur Zeit (noch) nicht implementiert.

    * Bei der ersten Verbindung zum entfernten Server meldet lftp manchmal einen Fehler oder hängt.

    Bitte dann initial ein manuelles `ssh user@server` ausführen, um den "known-hosts" Dialog abzuschließen.

    (Das müsste zwar nun dank eines Hinweises von KKoPi behoben sein, aber der Hinweis bleibt erst einmal hier stehen.)

    2 Mal editiert, zuletzt von simonz (7. März 2022 um 21:36)

Jetzt mitmachen!

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