Hi selfhosting community! At the moment I have my services set up with nix. They store their data on a btrfs subvolume which I can easily snapshot.

For backup I configured btrbk to send the snapshots to a target pc. However I feel uneasy not knowing if the backups succeeded or not. Right now I would need to check manually on the target machine every so often.

How are you guys handling this problem? Custom scripts for btrfs send/receive? Is there a function in btrbk I overlooked where I can verify the state and get notified of problems?

I was looking into ntfy-sh, which looks optimal, but how can I know if the send/receive was successful?

  • TehNomad@piefed.social
    link
    fedilink
    English
    arrow-up
    4
    ·
    21 hours ago

    I use the “||” operator in bash scripts to send a curl command to ntfy if the backup fails. But the healthchecks option is a little bit more robust since you wouldn’t get a notification if your system crashed and ntfy dies too. I believe you can also do this with Uptime Kuma if you want to go self-hosted on a remote server.

  • cosmicrose@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    6
    ·
    24 hours ago

    I’m not familiar with btrbk specifically, but my backups all send a ping to https://healthchecks.io/ when they start and when they finish. healthchecks.io works by getting a simple curl request, similar to ntfy, but if that request doesn’t happen after a certain amount of time (or if you do a start request and a succeed/fail request and the job is taking too long) then it will notify you. It can use ntfy for notifications, but it can also send emails or use any of a number other services.

  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    2
    ·
    24 hours ago

    Hmm, good question. I don’t have a setup for that either, but I don’t think there is a built in function for that.

    Your best bet is probably to find some tool that notifies you if new files get created in a directory, as AFAIK new snapshots are only created if they were successfully transferred.

  • chrash0@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    24 hours ago

    ok i’m not saying do this

    i recently setup an API proxy, C&C server, Grafana and Prometheus, and Discord bot. now i can send pings via Grafana or with a simple request (provided it’s authed via VPN or proxy) and have my Discord bot use a local LLM on my network to deliver the alert to a Discord channel in the voice of Ultron.