KeePass: bei Änderungen automatisch Backup einer Datenbank anlegen

Das hier ist eine abgewandelte Variante vom Beispiel zur Verwendung von Triggern in KeePass.

https://keepass.info/help/kb/trigger_examples.html

Es werden Sicherungskopien von allen Datenbanken gespeichert, nicht nur von der die offen ist während diese Einstellungen getätigt werden.

Idee: wenn die Datenbank in KeePass gespeichert wird, soll automatisch auch eine Kopie der Datenbank getimestamp gespeichert werden.

Mein KeePass liegt in einem OneDrive. So verhindere ich, dass es zu Synchronisationskonflikten kommt – bzw. ich so dennoch immer eine Kopie von Änderungen habe, selbst wenn ich geistig abwesend bei zwei Clients gleichzeitig in der Datenbank fummel.

Meine Annahmen:

  • die Datenbank liegt in F:\OneDrive - tionsys.de\Logins.kdbx
  • die Kopien sollen in F:\OneDrive - tionsys.de\Backups\KeePass gespeichert werden

Die Pfade lassen sich allerdings nach Belieben ändern.

Zusatz-Inhalt: wir wollen nur die letzten 30 Revisionen speichern. So oft registriere ich mich nicht bei Seiten, und wenn mir erst 30 Datenbankversionen später auffällt, dass der Login fehlt, müsste ich sowieso zu lange suchen um den wiederzufinden.

In KeePass > Tools > Triggers einen neuen Trigger erstellen.

Die erste Seite sollte selbsterklärend sein – Name, Enabled, Initially on. Das „Turn off“ aus, sonst schaltet der sich automatisch aus.

Neues Event hinzufügen: „Saved database file“, „Equals“, und den Filter leer:

Conditions leer

Action Execute command line / URL Nummer 1 hinzufügen:

File/URL%comspec%
Arguments/c copy "{DB_PATH}" "F:\OneDrive - tionsys.de\Backups\KeePass{DB_BASENAME}.{DT_SIMPLE}"
Wait for exit[X] Aktivieren
Window StyleNormal
Verb(leer)

Action Execute command line / URL Nummer 2 hinzufügen:

ile/URLpowershell.exe
Arguments"Get-ChildItem 'F:\OneDrive - tionsys.de\Backups\KeePass\Logins.*' | Sort-Object LastWriteTime -Descending | select -Skip 30 | Remove-Item"
Wait for exit[X] Aktivieren
Window StyleNormal
Verb(leer)

Hier noch mal visuell die beiden Actions, falls Unsicherheiten existieren ob Tüddelchen bei Arguments tatsächlich gesetzt werden sollen oder nicht:

Dann kann alles gespeichert und geschlossen werden.

Demolauf, etwas zur Datenbank hinzufügen, speichern -> ein kleines blaues Fenster öffnet sich für eine Femtosekunde. Blick in das Verzeichnis – eine Datei wird erstellt, die als Dateiendung das aktuelle Datum und die Uhrzeit hat:

Dass die 31te Datenbank gelöscht wird müsst ihr mir einfach glauben, das habe ich ausprobiert, das funktioniert. Testweise könnt ihr die 30 ja Mal auf 3 reduzieren und Blödsinn in der Datenbank speichern.

Kategorien:Software