Skip to content
OpenSmartRoute
Skillv1.0.0

rsync

Sync files and directories with rsync. Use when a user asks to copy files between servers, sync directories, create incremental backups, deploy files to a remote server, or mirror directories efficien

by terminalskills(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from terminalskills/skills (skills/rsync/SKILL.md). Install upstream with npx skills add terminalskills/skills --skill rsync. Copyright stays with the author (Apache-2.0).

rsync

Overview

rsync is the standard tool for efficient file synchronization. It only transfers changed parts of files (delta transfer), supports SSH, handles permissions, and works for backups, deployments, and directory mirroring.

Instructions

Step 1: Basic Usage

# Sync local directories
rsync -avz source/ destination/
# -a = archive (preserves permissions, timestamps, symlinks)
# -v = verbose
# -z = compress during transfer

# Sync to remote server
rsync -avz ./dist/ deploy@server:/var/www/myapp/

# Sync from remote
rsync -avz deploy@server:/var/log/myapp/ ./logs/

# Dry run (show what would change without doing it)
rsync -avzn source/ destination/

Step 2: Common Patterns

# Deploy website (delete files on destination that don't exist in source)
rsync -avz --delete ./build/ deploy@server:/var/www/site/

# Backup with exclude
rsync -avz --exclude='node_modules' --exclude='.git' --exclude='.env' \
  /opt/myapp/ /backups/myapp/

# Incremental backup with hard links (space-efficient)
rsync -avz --link-dest=/backups/latest \
  /opt/myapp/ /backups/$(date +%Y%m%d)/
ln -snf /backups/$(date +%Y%m%d) /backups/latest

# Bandwidth limited (useful for large transfers)
rsync -avz --bwlimit=5000 source/ destination/    # 5000 KB/s

Step 3: Deployment Script

#!/bin/bash
# scripts/deploy.sh — Deploy app with rsync
SERVER="deploy@prod.example.com"
REMOTE_DIR="/var/www/myapp"

echo "Building..."
npm run build

echo "Syncing files..."
rsync -avz --delete \
  --exclude='node_modules' \
  --exclude='.env' \
  --exclude='.git' \
  ./dist/ ${SERVER}:${REMOTE_DIR}/

echo "Restarting service..."
ssh ${SERVER} "sudo systemctl restart myapp"

echo "Deploy complete!"

Guidelines

  • Always use -n (dry run) first when using --delete to avoid accidental data loss.
  • Trailing slash matters: source/ syncs contents, source syncs the directory itself.
  • For large transfers, add --progress to see per-file progress.
  • rsync over SSH is encrypted by default — safe for internet transfers.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/terminalskills-skills-rsync/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

terminalskills-skills-rsync.ocm.jsonjson
{
  "ocm": "1",
  "id": "terminalskills-skills-rsync",
  "kind": "skill",
  "name": "rsync",
  "description": "Sync files and directories with rsync. Use when a user asks to copy files between servers, sync directories, create incremental backups, deploy files to a remote server, or mirror directories efficiently.",
  "publisher": "terminalskills",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "rsync",
      "sync",
      "backup",
      "deploy",
      "file-transfer",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Sync files and directories with rsync. Use when a user asks to copy files between servers, sync directories, create incremental backups, deploy files to a remote server, or mirror directories efficiently."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/terminalskills/skills",
      "path": "skills/rsync/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/terminalskills/skills/blob/HEAD/skills/rsync/SKILL.md",
      "key": "terminalskills/skills/skills/rsync/SKILL.md"
    },
    "compatibility": "Linux, macOS",
    "license": "Apache-2.0"
  },
  "instructions": "# rsync\n\n## Overview\n\nrsync is the standard tool for efficient file synchronization. It only transfers changed parts of files (delta transfer), supports SSH, handles permissions, and works for backups, deployments, and directory mirroring.\n\n## Instructions\n\n### Step 1: Basic Usage\n\n```bash\n# Sync local directories\nrsync -avz source/ destination/\n# -a = archive (preserves permissions, timestamps, symlinks)\n# -v = verbose\n# -z = compress during transfer\n\n# Sync to remote server\nrsync -avz ./dist/ deploy@server:/var/www/myapp/\n\n# Sync from remote\nrsync -avz deploy@server:/var/log/myapp/ ./logs/\n\n",
  "cost": {
    "context_tokens": 515
  }
}

Fetch it by URL: GET /api/v1/registry/terminalskills-skills-rsync/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.