Files
MajorLinux 6592eb4fea wiki: audit fixes — broken links, wikilinks, frontmatter, stale content (66 files)
- Fixed 4 broken markdown links (bad relative paths in See Also sections)
- Corrected n8n port binding to 127.0.0.1:5678 (matches actual deployment)
- Updated SnapRAID article with actual majorhome paths (/majorRAID, disk1-3)
- Converted 67 Obsidian wikilinks to relative markdown links or plain text
- Added YAML frontmatter to 35 articles missing it entirely
- Completed frontmatter on 8 articles with missing fields

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:16:29 -04:00

2.6 KiB

title, domain, category, tags, status, created, updated
title domain category tags status created updated
rsync — Fast, Resumable File Transfers opensource dev-tools
rsync
backup
file-transfer
linux
cli
published 2026-04-02 2026-04-02

rsync — Fast, Resumable File Transfers

Problem

Copying large files or directory trees between drives or servers is slow, fragile, and unresumable with cp. A dropped connection or a single error means starting over. You also want to skip files that already exist at the destination without re-copying them.

Solution

rsync is a file synchronization tool that only transfers what has changed, preserves metadata, and can resume interrupted transfers. It works locally and over SSH.

Installation (Fedora)

sudo dnf install rsync

Basic Local Copy

rsync -av /source/ /destination/
  • -a — archive mode: preserves permissions, timestamps, symlinks, ownership
  • -v — verbose: shows what's being transferred

Trailing slash on source matters:

  • /source/ — copy the contents of source into destination
  • /source — copy the source directory itself into destination

Resume an Interrupted Transfer

rsync -av --partial --progress /source/ /destination/
  • --partial — keeps partially transferred files so they can be resumed
  • --progress — shows per-file progress and speed

Skip Already-Transferred Files

rsync -av --ignore-existing /source/ /destination/

Useful when restarting a migration — skips anything already at the destination regardless of timestamp comparison.

Dry Run First

Always preview what rsync will do before committing:

rsync -av --dry-run /source/ /destination/

No files are moved. Output shows exactly what would happen.

Transfer Over SSH

rsync -av -e ssh /source/ user@remotehost:/destination/

Or with a non-standard port:

rsync -av -e "ssh -p 2222" /source/ user@remotehost:/destination/

Exclude Patterns

rsync -av --exclude='*.tmp' --exclude='.Trash*' /source/ /destination/

Real-World Use

Migrating ~286 files from /majorRAID to /majorstorage during a RAID dissolution project:

rsync -av --partial --progress --ignore-existing \
  /majorRAID/ /majorstorage/ \
  2>&1 | tee /root/raid_migrate.log

Run inside a tmux or screen session so it survives SSH disconnects:

tmux new-session -d -s rsync-migrate \
  "rsync -av --partial --progress /majorRAID/ /majorstorage/ | tee /root/raid_migrate.log"

Check Progress on a Running Transfer

tail -f /root/raid_migrate.log