Rclone – Cloud Storage Sync and Management Tool

4.9 Stars
Version 1.65.0
35 MB

Comprehensive Guide to Rclone: The Swiss Army Knife for Cloud Storage

Rclone has earned its reputation as the most versatile command-line tool for managing cloud storage across virtually every major provider. Often described as “rsync for cloud storage,” rclone enables seamless synchronization, transfer, and management of files between local systems and over 70 cloud storage services. Whether you need to migrate data between providers, create encrypted cloud backups, or mount remote storage as local drives, rclone provides the capabilities needed for any cloud storage workflow.

The power of rclone lies in its unified interface that abstracts away the differences between cloud providers. Once configured, the same commands work identically whether you’re working with Google Drive, Amazon S3, Dropbox, Microsoft OneDrive, or self-hosted solutions like Nextcloud. This consistency simplifies scripting and automation while making it easy to switch between or combine multiple storage providers.

Core Features and Capabilities

Rclone supports an impressive array of operations that go far beyond simple file transfers. The sync command implements bidirectional synchronization with sophisticated conflict resolution. Mount functionality allows accessing cloud storage as native filesystem mounts using FUSE. Server-side operations leverage cloud provider APIs for efficient operations without downloading data locally.

Encryption capabilities enable storing sensitive data on untrusted cloud services with client-side encryption. The crypt remote wraps any existing remote with encryption, transparently encrypting filenames and content before upload. This feature proves invaluable for protecting private data on commercial cloud services.

Bandwidth limiting, retry logic, and checksum verification ensure reliable transfers even over unstable connections. The –dry-run option previews operations without making changes, essential for testing complex sync configurations before execution.

Installing Rclone

Rclone provides official packages for all major platforms with straightforward installation processes.

Linux Installation

# Official install script (recommended)
curl https://rclone.org/install.sh | sudo bash

# Ubuntu/Debian
sudo apt install rclone

# Fedora
sudo dnf install rclone

# Arch Linux
sudo pacman -S rclone

# openSUSE
sudo zypper install rclone

# Snap installation
sudo snap install rclone

# Docker
docker pull rclone/rclone
docker run --rm rclone/rclone version

# Verify installation
rclone version

# Enable FUSE mounting
sudo apt install fuse3  # or fuse on older systems

macOS Installation

# Homebrew installation
brew install rclone

# Install macFUSE for mounting (optional)
brew install --cask macfuse

# Verify installation
rclone version

Windows Installation

# Chocolatey installation
choco install rclone

# Winget installation
winget install Rclone.Rclone

# Scoop installation
scoop install rclone

# Install WinFsp for mounting (optional)
choco install winfsp

# Verify in Command Prompt
rclone version

Configuration and Remote Setup

Rclone stores configuration in ~/.config/rclone/rclone.conf (Linux/macOS) or %APPDATA%\rclone\rclone.conf (Windows). The interactive configuration wizard simplifies setup for most providers.

# Start interactive configuration
rclone config

# Configuration menu options:
# n) New remote
# s) Set configuration password
# q) Quit

# List configured remotes
rclone listremotes

# Show remote configuration
rclone config show

# Delete remote
rclone config delete remote-name

# Update remote configuration
rclone config update remote-name parameter value

# Test remote connection
rclone lsd remote-name:

# Example manual configuration
# ~/.config/rclone/rclone.conf
[gdrive]
type = drive
scope = drive
token = {"access_token":"...","token_type":"Bearer"...}

[s3-backup]
type = s3
provider = AWS
env_auth = false
access_key_id = AKIAIOSFODNN7EXAMPLE
secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
region = us-east-1

[encrypted]
type = crypt
remote = gdrive:encrypted-backup
password = encrypted_password
password2 = encrypted_salt

Essential Commands and Operations

Rclone provides numerous commands for different operations. Understanding the key commands enables effective cloud storage management.

# List directories
rclone lsd remote:path

# List files
rclone ls remote:path

# List with details (size, date)
rclone lsl remote:path

# List in JSON format
rclone lsjson remote:path

# Copy files (local to remote)
rclone copy /local/path remote:destination

# Copy with progress
rclone copy -P /local/path remote:destination

# Copy files (remote to local)
rclone copy remote:path /local/destination

# Copy between remotes
rclone copy source-remote:path dest-remote:path

# Move files
rclone move /local/path remote:destination

# Sync directories (make destination match source)
rclone sync /local/path remote:destination

# Sync with delete protection
rclone sync --backup-dir remote:backup /local/path remote:destination

# Bidirectional sync
rclone bisync /local/path remote:path

# Delete files
rclone delete remote:path

# Delete directory
rclone purge remote:path

# Check if files match
rclone check /local/path remote:path

# Show disk usage
rclone size remote:path

# Create directory
rclone mkdir remote:new-directory

# Remove empty directories
rclone rmdirs remote:path

# Cat file content
rclone cat remote:file.txt

# Copy single file
rclone copyto /local/file.txt remote:destination/file.txt

Advanced Transfer Options

Rclone’s transfer options provide fine-grained control over how files are moved between locations.

# Limit bandwidth
rclone copy --bwlimit 1M /local remote:path

# Time-scheduled bandwidth limits
rclone copy --bwlimit "08:00,512k 00:00,10M" /local remote:path

# Transfer only files matching pattern
rclone copy --include "*.pdf" /local remote:path
rclone copy --include "*.{jpg,png,gif}" /local remote:path

# Exclude files
rclone copy --exclude "*.tmp" --exclude ".git/**" /local remote:path

# Filter from file
rclone copy --filter-from /path/to/filters.txt /local remote:path

# Dry run (preview without changes)
rclone sync --dry-run /local remote:path

# Limit parallel transfers
rclone copy --transfers 4 /local remote:path

# Skip existing files
rclone copy --ignore-existing /local remote:path

# Only update newer files
rclone copy --update /local remote:path

# Checksum comparison instead of size/time
rclone copy --checksum /local remote:path

# Minimum age filter
rclone copy --min-age 24h /local remote:path

# Maximum size filter
rclone copy --max-size 100M /local remote:path

# Verbose output with statistics
rclone copy -v --stats 30s /local remote:path

Mounting Cloud Storage

Rclone can mount any remote as a local filesystem, enabling transparent access to cloud storage from any application.

# Basic mount
rclone mount remote:path /mnt/remote

# Mount with caching (recommended)
rclone mount --vfs-cache-mode full remote:path /mnt/remote

# Mount as background daemon
rclone mount --daemon remote:path /mnt/remote

# Mount with specific cache directory
rclone mount --vfs-cache-mode full \
    --cache-dir /path/to/cache \
    remote:path /mnt/remote

# Mount with read-only access
rclone mount --read-only remote:path /mnt/remote

# Mount with logging
rclone mount --log-file /var/log/rclone.log \
    --log-level INFO \
    remote:path /mnt/remote

# Mount with buffer size for streaming
rclone mount --buffer-size 256M \
    --vfs-read-chunk-size 128M \
    remote:path /mnt/remote

# Unmount
fusermount -u /mnt/remote  # Linux
umount /mnt/remote         # macOS

# Windows mount as drive letter
rclone mount remote:path X:

# Cache mode options:
# off - No caching, minimal memory
# minimal - Read-only caching
# writes - Cache writes until uploaded
# full - Full caching of reads and writes

# Systemd service for persistent mount
# /etc/systemd/system/rclone-mount.service
[Unit]
Description=Rclone Mount
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount \
    --vfs-cache-mode full \
    --allow-other \
    remote:path /mnt/remote
ExecStop=/bin/fusermount -u /mnt/remote
Restart=on-failure
User=your-username

[Install]
WantedBy=default.target

Encryption with Crypt Remote

The crypt remote provides client-side encryption for storing sensitive data on any cloud provider.

# Create encrypted remote via config wizard
rclone config
# Select: n) New remote
# Name: encrypted-gdrive
# Type: crypt
# Remote: gdrive:encrypted-folder
# Choose password encryption options

# Manual configuration
[encrypted-gdrive]
type = crypt
remote = gdrive:encrypted-folder
password = secure_password_here
password2 = another_password_for_salt
filename_encryption = standard

# Use encrypted remote like any other
rclone copy /local/private encrypted-gdrive:

# List shows decrypted names
rclone ls encrypted-gdrive:

# Mount encrypted remote
rclone mount encrypted-gdrive: /mnt/private

# Encryption options:
# filename_encryption: 
#   - off: no filename encryption
#   - standard: encrypt filenames
#   - obfuscate: simple obfuscation
# directory_name_encryption: true/false

# Encrypt existing remote data
rclone copy gdrive:unencrypted encrypted-gdrive:

Server Mode and Remote Control

Rclone can run as a server, providing HTTP, WebDAV, and remote control interfaces.

# Start HTTP file server
rclone serve http remote:path --addr :8080

# WebDAV server
rclone serve webdav remote:path --addr :8080

# FTP server
rclone serve ftp remote:path --addr :2121

# SFTP server
rclone serve sftp remote:path --addr :2022

# DLNA media server
rclone serve dlna remote:media

# Remote control daemon
rclone rcd --rc-web-gui

# Control running rclone via API
rclone rc core/stats
rclone rc operations/list fs=remote: remote=""

# Docker WebDAV server
docker run -p 8080:8080 \
    -v ~/.config/rclone:/config/rclone \
    rclone/rclone \
    serve webdav remote:path --addr :8080

Backup Automation Scripts

Automating backups with rclone ensures consistent data protection.

#!/bin/bash
# backup-to-cloud.sh - Automated backup script

# Configuration
SOURCE="/home/user/documents"
DEST="encrypted-backup:daily"
LOG_FILE="/var/log/rclone-backup.log"
RETENTION_DAYS=30

# Date for backup folder
DATE=$(date +%Y-%m-%d)
BACKUP_PATH="$DEST/$DATE"

# Logging function
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG_FILE"
}

# Start backup
log "Starting backup to $BACKUP_PATH"

rclone sync "$SOURCE" "$BACKUP_PATH" \
    --transfers 8 \
    --checkers 16 \
    --contimeout 60s \
    --timeout 300s \
    --retries 3 \
    --low-level-retries 10 \
    --stats 30s \
    --stats-log-level NOTICE \
    --log-file "$LOG_FILE" \
    --log-level INFO \
    --exclude "*.tmp" \
    --exclude ".cache/**"

EXIT_CODE=$?

if [ $EXIT_CODE -eq 0 ]; then
    log "Backup completed successfully"
else
    log "Backup failed with exit code $EXIT_CODE"
    exit $EXIT_CODE
fi

# Cleanup old backups
log "Removing backups older than $RETENTION_DAYS days"
rclone delete "$DEST" \
    --min-age ${RETENTION_DAYS}d \
    --rmdirs \
    --log-file "$LOG_FILE"

log "Backup process completed"

Cloud-to-Cloud Transfers

Rclone excels at moving data between cloud providers without downloading locally.

# Copy between cloud providers (server-side when possible)
rclone copy gdrive:folder s3:bucket/folder

# Sync Google Drive to Dropbox
rclone sync gdrive:documents dropbox:documents-backup

# Move from one S3 bucket to another
rclone move s3-source:bucket/path s3-dest:bucket/path

# Server-side copy (same provider)
rclone copy --s3-no-head gdrive:source gdrive:destination

# Estimate transfer
rclone size gdrive:large-folder

Provider-Specific Features

Each cloud provider has unique features and optimizations available in rclone.

# Google Drive - Team Drives
rclone config
# Set: team_drive = your_team_drive_id

# Google Drive - Service Account
[gdrive-sa]
type = drive
scope = drive
service_account_file = /path/to/service-account.json

# Amazon S3 - Different storage classes
rclone copy --s3-storage-class GLACIER /local s3:bucket

# S3 - Server-side encryption
rclone copy --s3-server-side-encryption AES256 /local s3:bucket

# Azure Blob - Access tiers
rclone copy --azureblob-access-tier Cool /local azure:container

# Backblaze B2 - Hard delete
rclone delete --b2-hard-delete b2:bucket/path

# OneDrive - Business vs Personal
# Configured during setup via interactive config

# Dropbox - Shared folders
# Access via Teams or shared folder path

Troubleshooting and Debugging

Diagnosing issues requires understanding rclone’s logging and debugging capabilities.

# Verbose logging
rclone -v copy /local remote:path

# Very verbose (debug)
rclone -vv copy /local remote:path

# Log to file
rclone --log-file /tmp/rclone.log --log-level DEBUG copy /local remote:path

# Show configuration for remote
rclone config show remote-name

# Test connectivity
rclone lsd remote:

# Check file comparison
rclone check --one-way /local remote:path

# Show differences
rclone check --differ /tmp/differ.txt /local remote:path

# Retry failed operations
rclone copy --retries 10 --low-level-retries 20 /local remote:path

# Network timeout adjustments
rclone copy --timeout 600s --contimeout 120s /local remote:path

# Rate limit API calls
rclone copy --tpslimit 10 /local remote:path

# Clear cache
rclone cachestats remote:  # Show cache stats
rm -rf ~/.cache/rclone/    # Clear cache

Performance Optimization

Optimizing rclone for maximum throughput involves tuning transfer parameters.

# Increase parallel transfers
rclone copy --transfers 16 --checkers 32 /local remote:path

# Larger buffer for streaming
rclone mount --buffer-size 512M --vfs-read-chunk-size 256M remote: /mnt

# Use fastest hash algorithm
rclone copy --checksum --hash-type MD5 /local remote:path

# Skip verification for speed (use cautiously)
rclone copy --no-check-dest /local remote:path

# Multi-thread large file downloads
rclone copy --multi-thread-streams 4 remote: /local

Conclusion

Rclone provides unmatched flexibility for cloud storage management across dozens of providers through a consistent, powerful command-line interface. Whether migrating terabytes between cloud providers, implementing encrypted backup solutions, or mounting remote storage for everyday access, rclone delivers the tools needed for sophisticated cloud storage workflows. Its open-source nature, active development, and comprehensive documentation make it an essential tool for anyone working with cloud storage at any scale.

Developer: Rclone Team

Download Options

Download Rclone – Cloud Storage Sync and Management Tool

Version 1.65.0

File Size: 35 MB

Download Now
Safe & Secure

Verified and scanned for viruses

Regular Updates

Always get the latest version

24/7 Support

Help available when you need it