S3 GFS Retention

Home Assistant makes daily backups. Mine include metrics, which means about 1.8 GB per day. After six months, that was roughly 350 GB sitting in S3. I wanted to keep the safety of a long history without paying for every single day forever. So I wrote a small script that applies a Grandfather-father-son (GFS) retention policy to any S3 bucket with timestamped objects. It keeps a rolling set of daily, weekly, and monthly backups and prunes the rest. ...

January 12, 2026 · 5 min · Michael Bisbjerg

Linux incremental hardlink backup system

Introduction While reviewing my old college’s IT class backup system (due to running low on disk space), I discovered a major flaw: a weekly 1:1 backup of every user’s files—about 40 GB per week. Many of these files never change. Ever. Solution: Incremental backups. I challenged myself to code an incremental backup system using only Python and the Linux extfs filesystem. The Scenario At my former college, students ran the IT department. They set up a system with a 2 TB drive (two 1 TB disks) that made weekly full backups of every user, including alumni. ...

July 29, 2010 · 3 min · Michael Bisbjerg

SMS System

Introduction As part of the OEP platform at my previous college, we designed an SMS subsystem for messaging Danish mobile phones. It was intended for alerts like account lockouts or password resets. I coded it in Python. The Scenario We used LDAP as a central user database. The script needed to accept either a phone number or username, then look up the mobile number via LDAP (mobile attribute). I used python-ldap for this, available via Ubuntu’s package system. ...

July 29, 2010 · 2 min · Michael Bisbjerg