Profiles & tasks
Your transfers live in profiles that hold tasks.
- A profile is a named group —
backups,website, whatever. - A task is one transfer: an ID, an action, a Source, a Destination, plus its flags, filters, and SSH settings. Either path can be a
user@host:/path— see SSH & remote.
Both paths accept placeholders like {now:%Y-%m-%d}, {hostname} and $VAR, resolved on every run — see Dynamic paths.
Sync vs Snapshot
Toggle a task's Action with ←/→ as you add it:
- Sync — a plain
rsynccopy. - Snapshot —
--link-destversioning. Each run writes the next numbered directory (1/,2/, …). Local-only.
Task IDs
Leave the ID blank and it's derived from the label, slugified, plus a short hash of the action, source and destination (photos-3f2a) — so two tasks with the same name but different endpoints still get distinct ids. Identical tasks fall back to a -2 suffix. Type your own if you'd rather; it just has to be unique.
The id is a task's address: lazyrsync list prints it, and lazyrsync run backups/photos-3f2a runs that one task. See Headless & scheduling.
Working with the list
j/k(or↑/↓) move the cursor. Nothing runs until you hit an action key, and[0] Statustracks the cursor so you see each task live.- An action (
space/enter, orp/r/e/d) selects the task first: it climbs to the top, gets a*, then the action fires — so you never hit the wrong row. Vstarts a vim-style visual range: extend withj/k, then one action key runs the whole block (batches confirm first).
Your profiles and tasks persist to profiles.toml — see Configuration. The list is ordered by recency, not by the order tasks appear in the file, which matters when you schedule a whole profile.