Ich werde irgendwie nicht schlau.
Gegeben ist einerseits ein Skript, welches mir einen Snapshot von einem btrfs auf einer lokalen Platte macht, und dieses - so angeschlossen - auf eine externe Festplatte schiebt.
Beim Einstecken der externen Festplatte wird das Backupskript angeworfen ein Snapshot automatisch erstellt (lokal) und dieser im Anschluss auf die externe Platte geschoben.
Außerdem werden regelmäßig solche Snapshots erzeugt, und die "überzähligen" gelöscht. Sowohl lokal als auch auf der externen Platte.
Das funktioniert wunderbar.
Jetzt möchte ich die ganze Funktionalität etwas ausbauen und eine GUI dazu bauen.
Diese GUI soll eine Extension für Gnome3 werden.
Ich möchte hier beim ersten Mal einstecken einer externen Platte eine Abfrage, ob diese Platte als Backup-Store verwendet werden soll, und wenn dies mit ja beantwortet wird, soll die Extension die entsprechenden Schritte setzen:
- Die gesamte Platte (oder eine gewählte Partition) mit btrfs formatieren
- die UUID der Platte in einem Config-File speichern
- einen Mountpoint einrichten
- diesen Mountpoint als automountpoint einrichten
- eine udev-Regel erstellen, oder wenn es funktioniert, ein systemd.path-File aktivieren
- die service-Files der Intervalle lt. Auswahl aktiveren.
Code: Alles auswählen
systemd enable mkbackup@hourly.service
Ich bin aber mit den path-Files noch nicht so firm.
Deshalb hab ich derzeit eine UDEV-Regel, welche mir beim Einstecken der Platte ein target aktiviert (und beim ausstecken deaktiviert), welches mir dann die externe Platte an einen definierten Mountpoint mountet. Funktioniert gut.
Aber ich muss in die UDEV-Rule die UUID der externen Festplatte manuell eintragen, und ebenso in das systemd-mount-File.
Ich habe bisher noch keine Möglichkeit gefunden, in einer UDEV-Rule einen Wert aus einem Konfig-File einzulesen.
Wie stelle ich es an, dass z.B. ein instantiierendes path-File von systemd von einem Skript enabled wird, und dieses dann in Folge einen (Auto)mount veranlasst, welches nur auf diese UUID der Partition beschränkt ist?
Ich stells mir so vor, dass ich in einem Skript die UUID der PArtition auslesen lasse, und dann im Skript lediglich
Code: Alles auswählen
systemctl enable mkbackup@$UUID.path
Hat sich hierzu schon einmal jemand Gedanken gemacht, die er ev. mit mir teilen möchte?
lg scientific