🤖
Sync
Synchronize files and directories between local, remote, and cloud storage reliably.
安全通过
💬Prompt
技能说明
name: Sync description: Synchronize files and directories between local, remote, and cloud storage reliably. metadata: {"clawdbot":{"emoji":"🔄","requires":{"anyBins":["rsync","rclone"]},"os":["linux","darwin","win32"]}}
File Synchronization Rules
rsync Fundamentals
- Trailing slash matters:
rsync src/copies contents,rsync srccopies the folder itself — this is the #1 cause of wrong directory structures - Always use
-avzbaseline: archive mode preserves permissions/timestamps, verbose shows progress, compress speeds transfers - Add
--deleteonly when you want destination to mirror source exactly — without it, deleted source files remain on destination - Use
--dry-runbefore any destructive sync — shows what would change without modifying anything
Exclusions
- Create an exclude file instead of multiple
--excludeflags:rsync -avz --exclude-from=.syncignore src/ dest/ - Standard excludes for code projects:
.git/,node_modules/,__pycache__/,.venv/,*.pyc,.DS_Store,Thumbs.db - Exclude patterns are relative to source root —
/logs/excludes only top-level logs,logs/excludes logs/ anywhere
Cloud Storage (rclone)
rclone syncdeletes destination files not in source;rclone copyonly adds — use copy when unsure- Configure remotes interactively:
rclone config— never hardcode cloud credentials in scripts - Test with
--dry-runfirst, then--progressfor visual feedback during actual sync - For S3-compatible storage, set
--s3-chunk-size 64Mfor large files to avoid timeouts
Verification
- After critical syncs, verify with checksums:
rsync -avzcuses checksums instead of size/time (slower but certain) - For rclone, use
rclone check source: dest:to compare without transferring - Log sync operations to file for audit:
rsync -avz src/ dest/ | tee sync.log
Bidirectional Sync
- rsync is one-way only — for true bidirectional sync, use unison:
unison dir1 dir2 - Unison detects conflicts when both sides change — resolve manually or set prefer rules
- Cloud services like Dropbox/Syncthing handle bidirectional automatically — don't reinvent with rsync
Remote Sync
- For SSH remotes, use key-based auth:
rsync -avz -e "ssh -i ~/.ssh/key" src/ user@host:dest/ - Specify non-standard SSH port:
-e "ssh -p 2222" - Use
--partial --progressfor large files over unreliable connections — allows resume on failure
Common Pitfalls
- Syncing to mounted drives that unmount silently creates a local folder with the mount name — verify mount before sync
- Running sync without
--deleterepeatedly causes destination to accumulate deleted files forever - Time-based sync fails across machines with clock skew — use
--checksumfor accuracy or sync NTP first
如何使用「Sync」?
- 打开小龙虾AI(Web 或 iOS App)
- 点击上方「立即使用」按钮,或在对话框中输入任务描述
- 小龙虾AI 会自动匹配并调用「Sync」技能完成任务
- 结果即时呈现,支持继续对话优化