Client server communication (semaphores like locks)

Given:

  • Many clients whose data are to be backed up,
  • a server with one or more repositories where snapshots are backed up.

Requirement:
As the person responsible, I would like to trigger the backups centraly from the server and have an overview (Cockpit / Grafana dashboard / …) of whether the snapshots are working everywhere or where there are problems.

For this, a service would have to be installed on each client, which is accessible from the server:

  • Is the client online? And log that!
  • Start a backup and what is the status?
  • Cancel the backup and restart it, etc.

Are there already implementations for such a UseCase?
I could imagine that similar to locks in a repository there could also be semaphores through which client and server could exchange information.

I think this is vaguely similar to an idea I had for the restic wrapper I’m maintaining.

I haven’t got any time to work on it (since I changed job) but that’s something I have in the back of my mind, and would probably welcome some help with it :+1: