Skip to main content

Rollback-Safe Sync Workflow

This workflow turns sync from a risky action into a controlled change process.

4-Step Pattern​

Mapping​

Preflight Script​

preflight.sh
test -d /srv/site || { echo "missing source"; exit 1; }
test "$(ls -A /srv/site | wc -l)" -gt 0 || { echo "source empty"; exit 1; }
rclone lsd remote-prod:site >/dev/null

Execution Script​

execute-safe-sync.sh
rclone sync /srv/site remote-prod:site/current \
--dry-run --log-file /var/log/rclone-dryrun.log

rclone sync /srv/site remote-prod:site/current \
--backup-dir remote-prod:site/rollback/$(date +%F-%H%M) \
--delete-after \
--log-file /var/log/rclone-exec.log

rclone check /srv/site remote-prod:site/current --one-way

Rollback Command Pattern​

rclone copy remote-prod:site/rollback/2026-02-11-0100 remote-prod:site/current --progress
tip

Store dry-run and execution logs together with job IDs. This makes incident review much faster.

Common Pitfalls​

PitfallOutcomePrevention
No preflight checksSync from empty sourceFail fast before transfer starts
No rollback folder naming standardRecovery confusionUse timestamped rollback paths
No post-checkIncomplete success signalAdd rclone check for critical paths

What's Next​