Guten Morgen, heute möchte ich mal ein wenig aufzeigen, wie https://kopia.io/ aufgebaut ist und funktioniert. Ich hatte da am Anfang so ein wenig Probleme mit
Client
Software
Was gibt es?
Cross-platform backup tool for Windows, macOS & Linux with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication. CLI and GUI included. - Releases · kopia/kopia
GitHub (github.com)
kopia CLI
Man kann bei kopia, wie bei vielen Programme, den Sourcecode runterladen und das Tool selber bauen. Wir können uns aber auch ein passendes Debian-Paket installieren.
wget https://github.com/kopia/kopia/releases/download/v0.6.3/kopia_0.6.3_linux_amd64.deb
dpkg -i kopia_0.6.3_linux_amd64.deb
Dazu gibt es auch noch die Möglichkeit sich die Downloadquellen in APT einzubauen. Das macht auf meinem System leider einen Fehler, habe ich den schon eingereicht?
Heute kurz im Slack mit Jarek drüber gechattet, Problem gelöst Das war das Problem.
Das Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://packages.kopia.io/apt stable InRelease« die Architektur »i386« nicht unterstützt.
Jarek hat das auf seiner Seite gefixt.
Aktuell empfehle ich die Installation des .deb Paketes, geht einfach und problemlos.
Kopia-UI
desktop app for all supported platforms: Windows, macOS, and Linux
Hier hat man auch wieder viel Auswahl. Ein .deb Paket oder ein AppImage z.B. Beide funktionieren sehr gut.
repo connect
Was bei mir etwas gedauert hat, war das Verständnis wie kopia die Verbindung z.B. zu einem Kopia Repository Server verarbeitet. Das ist aber, wenn man es mal verstanden hat, relativ einfach.
Ich connecte so, zu meinem Server.
kopia repo connect server --url=https://DOMAIN.de:51515/ --override-username=USER --override-hostname=HOSTNAME
Was passiert dann?
kopia legt folgende Dateien unter /home/USER/.config/kopia an.
repository.config
{
"apiServer": {
"url": "https://DOMAIN.de:51515",
"serverCertFingerprint": ""
},
"hostname": "HOSTNAME",
"username": "USER"
}
Gut, er speichert die Login-Daten hier ab.
repository.config.kopia-password
XXXHHHSSSBBBDBBDJDJDJJ
Das Passwort zum Login auf dem Server in gehashter Form.
repository.config.update-info.json
{"nextCheckTimestamp":"2020-09-02T16:41:05.804210493+02:00","nextNotifyTimestamp":"2020-08-26T17:41:07.10204226+02:00","availableVersion":"v0.6.3"}
Die Daten, wenn man ein automatisches Backup angelegt hätte.
Zusammenfassung
Nach der erfolgreichen Ausführung von kopia repo connect server werden die Daten im o.g. Verzeichnis gespeichert. Das heisst, man muss das danach nicht wieder machen! Kopia kennt jetzt den Login und könnte jederzeit ein
kopia snapshot create $HOME
ausführen. Ich habe mich beim Testen immer gefragt, wo hat denn das UI die Login-Daten her. Ok, nun weiß ich das, das UI schaut in den abgelegten Daten nach und verbindet sich automatisch mit dem Server!
Wichtig! Bei einem
kopia repo disconnect
werden diese Dateien wieder gelöscht!
Damit ist nun klar, wie das funktioniert. Somit kann man auch sehr einfach das UI Interface nutzen, was keine eingebaute Funktion zum Verbinden mit dem Repository Server hat. Es hat auch noch ein paar andere Unzulänglichkeiten, dazu gibt es aber einen Issue, der auch abgearbeitet ist. Sollte im nächsten Release drin sein.
Some ideas / questions from me for kopia-ui - Login for kopia server (atm i do it from cli) - when connected to kopia-server the pulldown (local snapshot) is unnecessary(?) - Tab Repositiory show nothing (can we fill it with data?) - The...
GitHub (github.com)
Man verbindet zur Zeit über das CLI zum Server und kann danach das UI nutzen
Server
Auf dem Server findet man den selben Aufbau.
drwx------ 2 kopia kopia 4.0K Aug 29 10:16 .
drwx------ 4 kopia kopia 4.0K Aug 23 08:39 ..
-rw------- 1 kopia kopia 392 Aug 24 18:14 repository.config
-rw------- 1 kopia kopia 64 Aug 24 18:14 repository.config.kopia-password
-rw------- 1 kopia kopia 0 Aug 22 10:10 repository.config.mlock
-rw------- 1 kopia kopia 143 Aug 24 17:06 repository.config.update-info.json
repository.config
{
"storage": {
"type": "filesystem",
"config": {
"path": "/home/kopia/data",
"dirShards": null
}
},
"caching": {
"cacheDirectory": "../../.cache/kopia/3d45987959a6d07f",
"maxCacheSize": 5242880000,
"maxMetadataCacheSize": 5242880000,
"maxListCacheDuration": 600
},
"hostname": "HOSTNAME",
"username": "kopia"
}
repository.config.kopia-password
Das gehashte Passwort zum Filesystem.
repository.config.mlock
Leer. Bin mir nicht ganz sicher, wird vermutlich nur temporär benutzt (lock)
repository.config.update-info.json
{"nextCheckTimestamp":"2020-08-25T17:06:04.915833327+02:00","nextNotifyTimestamp":"2020-08-25T17:06:04.915833878+02:00","availableVersion":""}
Auch hier wieder die Daten für einen automatischen Snapshot, wenn man das nutzt.
Logfile
Ihr sucht das Logfile des Servers?
/home/kopia/.cache/kopia
Fazit
Sehr logisch aufgebaut, wenn man es mal verstanden und durchschaut hat. Das UI sollte sich mit dem nächsten Release auch besser nutzen lassen. Man kann aber aktuell problemlos Snapshots erstellen, was ich aktuell zur Zeit jeden Tag auch mache,
Aufpassen! Produktiv einsetzen sollte man sich noch sehr gut überlegen, es gibt da ein Problem was dem Coder aufgefallen ist, der nicht so gut ist.
Aktuell nutze ich weiterhin Restic, fahre aber zweigleisig, da mir Kopia sehr gut gefällt. Vor allen Dingen das UI macht es sehr einfach einen guten Überblick über seine Backups zu behalten.