Giter Site home page Giter Site logo

fastbackup's Introduction

[WIP] FastBackup

Important

This Tool is still in development and not ready for use. 🚧 ⚠️ 👷‍♀️

Important

Dieses Tool befindet sich noch in der Entwicklung und ist noch nicht einsatzbereit. 🚧 ⚠️ 👷‍♀️

FastBackup ist ein leistungsfähiges, flexibles und einfach zu bedienendes Backup-Tool, entwickelt, um die Sicherung und Synchronisation von Dateien und Verzeichnissen zu vereinfachen. Mit Unterstützung für mehrere Quellen und Ziele, Checksummen-Überprüfung und anpassbare Logging-Optionen bietet FastBackup eine robuste Lösung für deine Backup-Anforderungen.

Features

  • Unterstützung für mehrere Quellen und Ziele innerhalb eines Backup-Jobs.
  • Dry-Run-Modus zur Überprüfung der geplanten Aktionen ohne tatsächliche Änderungen.
  • Checksummen-Überprüfung zur Sicherstellung der Integrität der kopierten Daten.
  • Anpassbare Logging-Optionen mit Unterstützung für verschiedene Log-Level und Log-Dateien.
  • Globale und job-spezifische Konfigurationen durch YAML-Konfigurationsdateien.
  • Automatische Erkennung und Installation fehlender Abhängigkeiten.

TODOs / Roadmap

  • Config-Dateien für globale Einstellungen und Backup-Jobs
  • install.sh Skript für Abhängigkeiten
  • fastbackup.sh Skript als Hauptskript
  • fastbackup.py Skript für die eigentliche Backup-Logik
  • Windows-Unterstützung (Powershell-Skript)

Voraussetzungen

FastBackup setzt voraus, dass rsync, Python 3 auf dem System installiert sind. Ein Installationsskript (install.sh) ist enthalten, um die erforderlichen Abhängigkeiten zu überprüfen und zu installieren.

FastBackup verwendet folgende Python-Bibliotheken:

  • pyyaml für die Verarbeitung von YAML-Konfigurationsdateien.
  • argparse für die Verarbeitung von Befehlszeilenargumenten.
  • logging für das Logging von Ausgaben.
  • tqdm für die Anzeige von Fortschrittsbalken.

Installation

  1. Klone das Repository oder lade die Skriptdateien herunter.
  2. Führe das Installationsskript aus:
    sudo ./install.sh
  3. Überprüfe, ob das fastbackup.sh-Skript ausführbar ist. Falls nicht, setze die entsprechenden Berechtigungen:
    chmod +x fastbackup.sh

Konfiguration

FastBackup verwendet YAML-Dateien für die Konfiguration der Backup-Jobs (example-backup.yml) und globale Einstellungen (settings.yml).

  • Backup-Konfiguration (example-backup.yml): Definiert einzelne Backup-Jobs, einschließlich Quellen, Ziele, und job-spezifische Einstellungen.
  • Globale Einstellungen (settings.yml): Enthält globale Konfigurationsoptionen und Standardwerte für das Verhalten von FastBackup.

Konfigurationsdetails

Die settings.yml-Datei steuert das Verhalten von FastBackup durch verschiedene globale Einstellungen. Hier ist eine detaillierte Erklärung der Konfigurationsbereiche:

settings.yml

Globale Einstellungen (global) Die Konfiguration ist in drei Hauptbereiche unterteilt: config, script und log. log.logNames enthält die Namen der verschiedenen Log-Dateien, die von FastBackup erstellt werden.

global.config:

Schlüssel Values Default Value Beschreibung
dry BOOL true/false true Aktiviert den Dry-Run-Modus global, wenn true.
check BOOL true/false true Aktiviert die Checksummen-Überprüfung global, wenn true.
headless BOOL true/false false Aktiviert den Headless-Modus, um Ausgaben im Terminal zu unterdrücken, wenn true.

global.script:

Schlüssel Values Default Value Beschreibung
onError null or a PATH null Pfad zum Skript, das im Fehlerfall ausgeführt wird.
onCheckError null or a PATH null Pfad zum Skript, das ausgeführt wird, wenn bei der Checksummen-Überprüfung ein Fehler auftritt.
onSuccess null or a PATH null Pfad zum Skript, das nach einem erfolgreichen Backup ohne Fehler ausgeführt wird.

global.log:

Schlüssel Values Default Value Beschreibung
logLevel INT 0-3 1 Legt das Log-Level fest (0 = kein Logging, 1 = Basis-Logging, 2 = erweitertes Logging, 3 = Debugging).
logPath PATH ./logs Pfad zum Verzeichnis, in dem Log-Dateien gespeichert werden.
logPrefix null or STRING null Prefix für Log-Dateien (prefix_logfile.log)
logSuffix null or STRING null Suffix für Log-Dateien (sufix_logfile.log)
logDate BOOL true/false false Fügt das Datum zum Log-Dateinamen hinzu, wenn true. (logfile_YYYY-MM-DD.log)
logTime BOOL true/false false Fügt die Uhrzeit zum Log-Dateinamen hinzu, wenn true. (logfile_HH-MM-SS.log)
logOverwrite BOOL true/false true Überschreibt vorhandene Log-Dateien, wenn true. Andernfalls wird ein neuer Name generiert. (logfile.log -> logfile_1.log)

global.log.logNames:

Schlüssel Values Default Value Beschreibung
console STRING run Name für die Konsolenausgabe-Log-Datei. (run.log)
checkfile STRING check Name für die Log-Datei der Checksummenprüfung. (check.log)
copyfiles STRING copy Name für die detaillierte Kopiervorgangs-Log-Datei. (copy.log)
error STRING error Name für die Fehler-Log-Datei. (error.log)
debug STRING debug Name für die Debug-Log-Datei. (debug.log)

Verwendung

Um ein Backup zu starten, führen Sie das fastbackup.sh-Skript mit den gewünschten Optionen aus:

./fastbackup.sh -f /pfad/zu/backup-config.yml

Optionale Parameter:

  • -f, --file: Pfad zur Backup-Konfigurationsdatei.
  • -c, --check: Führt nur eine Checksummen-Überprüfung durch.
  • -d, --dry: Führt einen Dry-Run durch.
  • --full: Führt einen vollständigen Backup-Prozess durch (Dry-Run, Kopieren, Checksummen-Überprüfung).

Für weitere Informationen und optionale Parameter, führen Sie das Skript mit der Hilfe-Option aus:

./fastbackup.sh --help

Beitrag

Wir begrüßen Beiträge und Vorschläge zur Verbesserung von FastBackup. Bitte erstellen Sie Issues oder Pull Requests im Repository.

Lizenz

FastBackup ist unter der MIT-Lizenz veröffentlicht. Details finden Sie in der LICENCE-Datei.

fastbackup's People

Contributors

onekintaro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.