diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-25 01:37:41 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-25 01:37:41 -0400 |
| commit | 8f351ae4d14fc2abcc83716a192dfacff6dc65ef (patch) | |
| tree | a981986f91552bd957f344e769dce68dab3a9197 /.gitignore | |
| parent | 03a9ff353721ba8fb5f37cad2546d25788011451 (diff) | |
| download | rsyncshot-8f351ae4d14fc2abcc83716a192dfacff6dc65ef.tar.gz rsyncshot-8f351ae4d14fc2abcc83716a192dfacff6dc65ef.zip | |
feat: lock backups internally so cron needs no flock wrapper
rsyncshot now acquires an exclusive, non-blocking lock (fd 200) before the backup phase, so a slow backup can't overlap the next cron tick. Only real backups lock. Help, list, status, and dryrun don't, so they're never blocked.
The lock file defaults to /run/lock/rsyncshot.lock, a root-only directory that avoids the symlink-truncation risk of a predictable name in world-writable /tmp. It falls back to /var/lock then /tmp, and is configurable via LOCKFILE. It's deliberately a different file from the old /tmp/rsyncshot.lock cron wrappers, so existing wrapped crontabs keep working until the wrapper is removed.
setup() no longer wraps cron entries in flock, since the script locks itself.
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions
