A Python-based automation tool for creating incremental, timestamped
backups on Linux Mint using rsync.
Designed to be safe, configurable, and production-ready, with
support for logging and optional systemd automation.
- β
Incremental backups using
rsync - π Timestamped snapshot directories
- π
latestsymlink for easy restores - π§Ύ Configurable sources, exclusions, and destination
- π Detailed logging
- β±οΈ Optional automation via
systemdtimer - π‘οΈ Safe-by-design testing workflow (supports dry runs)
LinuxMintBackup/
βββ backup.py
βββ config.json
βββ logs/
βββ .gitignore
βββ README.md
- Linux Mint (or any modern Linux distribution)
- Python 3.8+
- rsync
Install rsync if needed:
sudo apt install rsyncEdit config.json to define what gets backed up:
{
"sources": ["/home/youruser", "/etc"],
"exclude": ["/home/youruser/.cache", "/home/youruser/.local/share/Trash"],
"destination": "/mnt/backup/linux-mint",
"log_file": "/home/youruser/LinuxMintBackup/logs/backup.log"
}python3 backup.py- Do NOT commit backup data to Git
- Ensure
.gitignoreexcludes backup destinations and logs
Novrus Shehaj
GitHub: https://github.com/NovrusShehaj
MIT License