Ich betreibe einen Minecraft-Server auf einem VPS irgendwo in Kanada. Ich verwende rsync, um die Serverdateien vom VPS mit meinem PC zu synchronisieren. Das funktioniert gut und problemlos. Allerdings möchte ich auf meinem PC Tar.gz-Archive der Serverdateien erstellen.
Ich möchte ein vollständiges Tar.gz-Backup der Minecraft-Serverdateien erstellen, die ich derzeit auf meinem PC habe. Nennen wir dieses Backup „full.tar.gz“. Einen Monat später verwende ich dann rsync, um die Minecraft-Serverdateien vom VPS mit meinem PC zu synchronisieren. Dann möchte ich ein Backup der Minecraft-Serverdateien in einem Tar.gz-Archiv erstellen, aber nur mit den Dateien, die sich seit dem letzten vollständigen Backup geändert haben. Nennen wir dieses Backup „incremental-01.tar.gz“. Einen weiteren Monat später möchte ich dasselbe tun und ein Backup mit dem Namen „incremental-02.tar.gz“ erstellen, das nur die Änderungen seit den Backups „full.tar.gz“ und „incremental-01.tar.gz“ enthält, und so weiter und so fort. All das kann ich problemlos mit Tar machen.
Aber hier ist der Haken. Unter den Serverdateien (6 GB – 15 GB) befinden sich einige ziemlich große Dateien. Diese großen Dateien sind SQLite-Datenbankdateien. Nur ein Teil dieser riesigen Dateien ändert sich. Ich möchte nicht jedes Mal, wenn ich ein inkrementelles Tar-Backup erstelle, die gesamten 6 GB – 15 GB großen SQLite-Datenbankdateien einschließen.
Ich suche nach einer Lösung, die die oben genannten inkrementellen Sicherungsvorgänge durchführen kann und bei großen Dateien nur die Änderungen sichert, die seit der letzten Sicherung innerhalb der großen Dateien aufgetreten sind.
Noch besser wäre es, eine Backup-Lösung zu haben, die inkrementelle Backups auf Binärebene erstellt und nicht nur ganze Dateien sichert, wenn deren Metadaten oder CRC32 oder Hash oder was auch immer sich seit dem letzten Backup geändert haben.