Backup suite.
Find a file
Bjørn Bäuchle 11e8fc9ce6
All checks were successful
/ linting (push) Successful in 11s
/ make-wheel (push) Successful in 12s
/ make-doc (push) Successful in 6s
Merge pull request 'fixes_for_v6.0.0' (#67) from fixes_for_v6.0.0 into main
Reviewed-on: #67
2026-05-02 19:58:30 +02:00
.forgejo/workflows FIX actions/forgejo v2 2026-02-16 14:09:13 +01:00
doc DOC stub for Notifications 2026-04-26 15:46:11 +02:00
docs FIX #11: new modes for SemaphoreProvider 2026-04-27 21:35:53 +02:00
sayod FIX: No Default for Provider.runas 2026-05-02 19:58:03 +02:00
.flake8 FIX most findings from flake8 2025-02-22 09:59:38 +01:00
.git_archival.txt NEW RENAME to sayod, make wheel 2024-10-08 21:57:27 +02:00
.gitattributes NEW RENAME to sayod, make wheel 2024-10-08 21:57:27 +02:00
.gitignore Ignore vim swap files 2025-12-01 18:23:08 +01:00
.pylintrc pylint: ignore modules 2026-01-10 23:16:12 +01:00
LICENSE LICENCE: Switch to EUPL-1.2 2025-12-28 07:24:11 +01:00
pyproject.toml fix d1bfce91c3: no 3.8 2025-12-28 09:51:34 +01:00
README.md Add documentation about config files 2025-10-28 17:14:10 +01:00

Sayod /ˈseɪəd/: SAve Your Own Data.

Say It: Backups are good!

sayod is a backup suite written in Python. It mostly uses git and rsync for its tasks and communicates via ssh. It may show notifications with libnotify and interactive prompts with PySide6.

Configuration of backup jobs is done via job resource files which are usually stored in $HOME/.config/sayod/, but can be placed anywhere.

Installation

$ pip install sayod

Usage

sayod's first entrypoint is sayod-backup. Lesser entrypoints are logreader and receiver which are supposed to be called via SSH on a different machine to handle deadtime and notification

# file $HOME/.config/sayod/mytask.rc
[source]
path = /home/myself

[target]
path = /var/my_backups/

[rsync]
deadtime = 7 # weekly backups
$ sayod-backup --config mytask copy
$ # same thing:
$ sayod-backup --config $HOME/.config/sayod/mytask.rc copy