Overslaan naar inhoud
CTech Digital
  • Startpagina
  • Odoo services
  • AI services
  • Contact
  • 0
  • Nederlands (BE) English (UK) Français
CTech Digital
  • 0
    • Startpagina
    • Odoo services
    • AI services
    • Contact
  • Nederlands (BE) English (UK) Français

Drive migration over VPS

  • Alle blogs
  • Daily blog
  • Drive migration over VPS
  • 21 maart 2026 in
    CTech Metrology, Luc Wens

    Dropbox → Google Drive Migration via VPS

    A step-by-step procedure for migrating large Dropbox accounts (500 GB – 2 TB) to Google Drive using rclone on a cheap cloud VPS, with a real-time monitoring dashboard. This avoids consuming local internet bandwidth — all data flows server-to-server.

    Estimated cost: Free (within UpCloud's €250 trial) or under €0.50 if paying.

    Estimated duration: 1–3 days depending on data volume (Google Drive allows 750 GB/day upload).

    Prerequisites

    • rclone installed on your local Windows PC (e.g. in C:\rclone)
    • Dropbox and Google Drive accounts
    • An SSH client (built into Windows PowerShell)

    Step 1: Create the VPS

    1. Sign up at https://upcloud.com — free trial gives €250 credit for 30 days
    2. Go to Servers → Deploy server and configure:

      • Location: NL-AMS1 (Amsterdam) — or closest to your region
      • Plan: Developer, 1 core, 1 GB RAM, €3/mo — sufficient for rclone
      • OS: Ubuntu Server 22.04 LTS (or 24.04 LTS)
      • Network: Public IPv4 enabled
      • Login method: SSH key (see Step 2 if you don't have one)
      • Initialization script: paste the following:

        #!/bin/bash
        apt-get update -qq && apt-get install -y -qq tmux curl unzip && curl -sSL https://rclone.org/install.sh | bash
        
      • Hostname: migration (or whatever you prefer)
    3. Click Deploy — server is ready in ~45 seconds
    4. Note the IP address from the server list

    Alternative providers

    Any Ubuntu VPS works. Hetzner CX22 (€3.79/mo) is another good option. See the comparison document for details.

    Step 2: Generate SSH Key (if needed)

    If the VPS provider requires SSH key authentication (e.g. Ubuntu 24.04 on UpCloud):

    ssh-keygen -t ed25519 -C "migration"
    

    Press Enter for all defaults. Copy the public key:

    Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub" | clip
    

    Paste it in the VPS provider's SSH key field during deployment.

    Step 3: SSH into the VPS

    ssh root@YOUR_VPS_IP
    

    Accept the host fingerprint when prompted.

    Step 4: Configure rclone Remotes

    rclone was pre-installed by the initialization script. Now configure the cloud storage remotes.

    Create the config file

    mkdir -p /root/.config/rclone
    

    Authorize Dropbox

    On your local Windows PC (not the VPS), open a new PowerShell window:

    C:\rclone\rclone authorize "dropbox"
    

    A browser opens → log in to Dropbox → authorize → rclone prints a JSON token in the terminal. Copy the entire JSON (from { to }).

    Authorize Google Drive

    On your local Windows PC, in the same or another PowerShell window:

    C:\rclone\rclone authorize "drive"
    

    Browser opens → log in to Google → authorize → copy the JSON token.

    Write the config file on the VPS

    Back in the VPS SSH session, create the config with both tokens. Replace PASTE_DROPBOX_TOKEN_HERE and PASTE_GDRIVE_TOKEN_HERE with the actual JSON tokens:

    cat > /root/.config/rclone/rclone.conf << 'CONF'
    [dropbox]
    type = dropbox
    token = PASTE_DROPBOX_TOKEN_HERE
    
    [gdrive]
    type = drive
    scope = drive
    token = PASTE_GDRIVE_TOKEN_HERE
    CONF
    

    Verify both remotes

    rclone lsd dropbox: --max-depth 0
    

    Should list your Dropbox root folders. Ctrl+C if the list is long.

    rclone lsd gdrive: --max-depth 0
    

    Should list your Google Drive root folders. If both work, you're ready.

    Step 5: Start the Migration

    Choose a dashboard password (replace YOUR_PASSWORD below), then run:

    LOGFILE="/root/migration_$(date +%Y%m%d_%H%M%S).log"
    
    tmux new-session -d -s migration "rclone move dropbox: gdrive: \
        --exclude '/GIT/**' \
        --update \
        --use-server-modtime \
        --transfers 16 \
        --checkers 32 \
        --buffer-size 64M \
        --drive-chunk-size 128M \
        --tpslimit 10 \
        --tpslimit-burst 20 \
        --retries 5 \
        --retries-sleep 10s \
        --low-level-retries 10 \
        --ignore-errors \
        --stats 1m \
        --stats-log-level NOTICE \
        --stats-one-line \
        --log-file $LOGFILE \
        --log-level INFO \
        --rc \
        --rc-addr 0.0.0.0:5572 \
        --rc-user admin \
        --rc-pass YOUR_PASSWORD \
        --rc-enable-metrics \
        --rc-allow-origin '*' \
        --progress"
    

    Key flags explained

    FlagPurpose
    --exclude '/GIT/**'Skip the GIT folder
    --updateSkip files newer on destination
    --transfers 1616 concurrent file transfers
    --drive-chunk-size 128MLarger chunks for big files
    --tpslimit 10Rate limit to avoid Google API 403 errors
    --retries 5Auto-retry on transient failures
    --rcEnable remote control API for dashboard
    --rc-addr 0.0.0.0:5572Listen on all interfaces (not just localhost)
    --rc-user / --rc-passDashboard authentication
    --rc-allow-origin '*'Allow CORS for the HTML dashboard

    Modify the exclude pattern

    Adjust --exclude '/GIT/**' to match your needs, or add multiple excludes:

    --exclude '/GIT/**' \
    --exclude '*.tmp' \
    --exclude '/Old Backups/**' \
    

    Step 6: Monitor via Dashboard

    Open rclone-dashboard.html in your browser (the file provided alongside this procedure).

    1. Select Remote VPS
    2. Enter:

      • URL: http://YOUR_VPS_IP:5572
      • Username: admin
      • Password: the password you chose in Step 5
    3. Click Connect

    The dashboard shows:

    • Overview tab: live progress bar, transfer speed, files transferred, data moved, elapsed time, errors, active transfers with per-file progress, and speed/files charts over time
    • Transfers tab: recently completed files with status
    • Hourly Log tab: automatic snapshots every hour

    You can now close the SSH session — the migration continues in tmux on the VPS.

    Step 7: Check Progress (optional)

    Via the dashboard

    Just open rclone-dashboard.html anytime from any device.

    Via SSH

    ssh root@YOUR_VPS_IP
    
    # Attach to migration terminal
    tmux attach -t migration
    # Detach without stopping: Ctrl+B then D
    
    # Check if rclone is running
    ps aux | grep rclone
    
    # View recent log entries
    tail -50 /root/migration_*.log
    

    Step 8: Clean Up

    Once the dashboard shows the migration is complete:

    1. Verify by SSH-ing in and checking the log:

      tail -20 /root/migration_*.log
      
    2. Delete the VPS from the UpCloud console: Servers → select server → Destroy
    3. Optionally remove the SSH known host on your PC:

      ssh-keygen -R YOUR_VPS_IP
      

    Troubleshooting

    Google Drive 403 rate limit errors

    Normal for large migrations. The --tpslimit 10 and --retries 5 flags handle this automatically. Google allows 750 GB/day upload, so a 1.5 TB migration takes ~2 days.

    Dropbox token expired

    Dropbox tokens expire after a few hours but rclone auto-refreshes using the refresh_token. If auth fails:

    # Stop the migration
    tmux kill-session -t migration
    
    # Re-authorize on your local PC
    C:\rclone\rclone authorize "dropbox"
    
    # Edit the config on the VPS
    nano /root/.config/rclone/rclone.conf
    # Replace the dropbox token line with the new token
    
    # Restart migration (it resumes where it left off)
    bash /root/run-migration.sh
    

    Dashboard shows "Disconnected"

    • Check VPS is still running in UpCloud console
    • Verify port 5572 is open: try curl http://YOUR_VPS_IP:5572/core/stats -u admin:YOUR_PASSWORD
    • Check rclone is still running: ssh root@YOUR_VPS_IP "ps aux | grep rclone"

    Migration was interrupted

    rclone with --update is safe to re-run — it skips files already transferred. Just re-run the Step 5 command.

    Out of memory on 1 GB VPS

    Reduce concurrent operations:

    --transfers 8 \
    --checkers 16 \
    --buffer-size 32M \
    

    Files Included

    FilePurpose
    rclone-dashboard.htmlBrowser-based monitoring dashboard (works for both local and remote VPS)
    Start-RcloneMigration.ps1PowerShell script for running the migration locally on Windows (alternative to VPS)
    vps-setup.shAutomated VPS setup script (installs rclone, guides through auth, starts migration)
    VPS-Comparison-rclone-migration.mdPrice comparison of Hetzner, UpCloud, DigitalOcean, Vultr
    in Daily blog
    # Claude
    Orange
    Copyright © CTech
    Nederlands (BE) | English (UK) | Français
    Aangeboden door Odoo - De #1 Open source e-commerce