Cloud and Self-Hosting
How to Back Up Proxmox to Google Drive with rclone (Step-by-Step)
By Amjid Ali · · Updated · 7 min read

In this article
- Quick steps
- Which method should you use?
- Prerequisites
- Step 1: install the current rclone
- Step 2: create your own Google Drive client ID
- Step 3: create the Google Drive remote
- Step 4: add encryption with a crypt remote
- Method A: upload each backup with a vzdump hook script (recommended)
- Method B: mount Google Drive as Proxmox backup storage
- Restoring a backup from Google Drive
- Troubleshooting
- Better targets for Proxmox Backup Server
- Final thoughts
To back up Proxmox to Google Drive, install a current rclone on the Proxmox host, create a Google Drive remote with your own Google client ID, wrap it in an encrypted crypt remote, then either upload each vzdump backup to Drive automatically with a vzdump hook script (recommended), or mount Drive with rclone mount and add it as a Directory storage for backups. Proxmox VE has no built-in Google Drive storage, and Proxmox Backup Server cannot use Google Drive as a datastore.
The layout I recommend for a homelab, and the one this guide builds, is backups on local or NAS storage (TrueNAS in my case) first, then an encrypted copy on Google Drive as the off-site copy. This 2026 update also fixes three things older guides (including my first version of this one) get wrong: Debian's rclone package is years old, rclone's shared Google client ID is being retired, and the --cache-db-purge flag belongs to rclone's deprecated cache backend, not to rclone mount.
Quick steps
curl https://rclone.org/install.sh | bashto install the current rclone.- Create a Google Cloud OAuth client (Desktop app) for the Drive API.
rclone config: adriveremote with your client ID, then acryptremote on top.- Pick a method:
- A. Upload after backup: vzdump to local storage, hook script runs
rclone copyto Drive. - B. Mount:
rclone mountas a systemd service,pvesm add dirwith backup content.
- A. Upload after backup: vzdump to local storage, hook script runs
- Add retention on Drive and test a restore.
Which method should you use?
| A. vzdump + rclone copy (hook) | B. rclone mount as storage | |
|---|---|---|
| Speed of the backup job | Fast, writes to local disk | Limited by upload and cache |
| Reliability | High: a failed upload does not fail the backup | A dropped mount fails the job |
| Local disk needed | Space for the backups | Space for the VFS write cache |
| Restore | Copy back, then restore | Restore straight from the GUI |
| Best for | Off-site copy of nightly backups | Small setups, occasional backups |
My advice: use A, and keep the latest copy on local or NAS storage as well. Google Drive is a good last line of defence, not a primary backup target.
Prerequisites
- Proxmox VE 8 or 9 with root shell access (SSH or the node's Shell).
- A Google account with enough Drive space (Google One or Workspace for anything beyond small VMs).
- Local backup storage, for example the default
localstorage (/var/lib/vz/dump) or a NAS share.
Step 1: install the current rclone
Debian's package is rclone 1.60 on both Bookworm (PVE 8) and Trixie (PVE 9), released in 2022. Install the current release from rclone's official script instead:
apt update && apt install -y curl unzip fuse3
curl https://rclone.org/install.sh | bash
rclone version
rclone v1.7x.x
- os/version: debian 13.x (64 bit)
...
fuse3 is only needed for the mount method, but it does no harm. To update later, run the same script again.
Step 2: create your own Google Drive client ID
rclone's documentation says the shared client ID is being retired and will stop working during 2026, and it is rate limited by everyone using it. Create your own (it is free):
- Open Google Cloud Console, create a project, for example
proxmox-rclone. - APIs & Services > Library: search Google Drive API and click Enable.
- OAuth consent screen (Google Auth Platform): choose External, fill in the app name and your email, add your Google account as a test user, and publish the app. The rclone docs explain that apps left in Testing mode have tokens that expire after a week; a personal app under 100 users does not need Google verification, you just accept the "unverified app" warning.
- Credentials > Create credentials > OAuth client ID, application type Desktop app. Copy the Client ID and Client secret.
Step 3: create the Google Drive remote
rclone config
Answer the prompts:
nfor a new remote, name itgdrive.- Storage type: type
drive(the menu number changes between versions, the name does not). client_idandclient_secret: paste yours from Step 2.scope:1(full access,drive) or3(drive.file, only files rclone creates).drive.fileis the safer choice for a backup-only remote.- Leave
service_account_fileempty,nto advanced config. - Use web browser to automatically authenticate? Answer
non a headless Proxmox host.
rclone then prints a command like this:
Execute the following on the machine with the web browser (same rclone version recommended):
rclone authorize "drive" "eyJjbGllbnRfaWQiOi..."
Then paste the result.
Run that exact command on your PC (install rclone there too), sign in to Google, allow access, and paste the token it prints back into the Proxmox terminal. Answer n to shared drive (unless you use one), then y to keep the remote.
The original method in my video also works: tunnel port 53682 over SSH (in PuTTY: Connection > SSH > Tunnels, source port 53682, destination 127.0.0.1:53682), answer y to the browser question and open the URL rclone shows.
Test it:
rclone lsd gdrive:
rclone mkdir gdrive:proxmox-backups
Step 4: add encryption with a crypt remote
A vzdump file contains the full VM disk, so encrypt it before it leaves the host:
rclone config
n, name itgdrive-crypt, storage typecrypt.remote:gdrive:proxmox-backupsfilename_encryption:standard,directory_name_encryption:true.- Password: let rclone generate a strong one (
g), and also set a salt password. Save both in your password manager. Without them the backups cannot be decrypted, even by you.
Test:
echo test > /tmp/test.txt
rclone copy /tmp/test.txt gdrive-crypt:
rclone ls gdrive-crypt: # shows test.txt
rclone ls gdrive:proxmox-backups # shows an encrypted name
Back up /root/.config/rclone/rclone.conf too (it holds the token and the obscured crypt passwords). My Proxmox host configuration backup guide covers that folder.
Method A: upload each backup with a vzdump hook script (recommended)
vzdump can run a script at each phase of a backup job. At job-end we copy the new backups to Drive.
Create the script:
cat > /usr/local/bin/vzdump-gdrive.sh <<'EOF'
#!/bin/bash
# vzdump hook: $1 is the phase (job-start, backup-end, job-end, ...)
if [ "$1" = "job-end" ]; then
/usr/bin/rclone copy /var/lib/vz/dump gdrive-crypt:dump \
--include "vzdump-*" --max-age 2d \
--drive-stop-on-upload-limit \
--log-file /var/log/rclone-vzdump.log --log-level INFO
fi
exit 0
EOF
chmod +x /usr/local/bin/vzdump-gdrive.sh
Change /var/lib/vz/dump to the dump folder of whichever storage your backup job writes to (for example /mnt/pve/truenas/dump). --max-age 2d uploads only recent files, so old archives you pruned locally are not re-sent.
Tell vzdump to use it for all jobs:
echo "script: /usr/local/bin/vzdump-gdrive.sh" >> /etc/vzdump.conf
Now create or check your backup job under Datacenter > Backup (storage local, mode Snapshot, compression ZSTD) and click Run now to test. Then:
tail -f /var/log/rclone-vzdump.log
rclone ls gdrive-crypt:dump
You should see the .vma.zst (VMs) or .tar.zst (containers) files, plus their .log and .notes files, appear in Drive. Proxmox ships a full example hook script at /usr/share/doc/pve-manager/examples/vzdump-hook-script.pl if you want to react to other phases.
Retention on Google Drive
Local retention (prune-backups) does not touch Drive. Add a daily cleanup, for example keeping 30 days:
cat > /etc/cron.d/rclone-gdrive-prune <<'EOF'
30 6 * * * root /usr/bin/rclone delete gdrive-crypt:dump --min-age 30d --log-file /var/log/rclone-vzdump.log
EOF
Deleted files go to the Drive trash first; empty it with rclone cleanup gdrive: if space is tight.
Method B: mount Google Drive as Proxmox backup storage
Use this if you want Google Drive to appear as a storage in the GUI.
Create the mount point and a systemd service:
mkdir -p /mnt/gdrive
cat > /etc/systemd/system/rclone-gdrive.service <<'EOF'
[Unit]
Description=rclone mount of Google Drive (crypt)
Wants=network-online.target
After=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/rclone mount gdrive-crypt: /mnt/gdrive \
--config=/root/.config/rclone/rclone.conf \
--allow-other \
--vfs-cache-mode writes \
--vfs-cache-max-size 50G \
--dir-cache-time 72h --poll-interval 1m \
--log-file /var/log/rclone-gdrive.log --log-level INFO
ExecStop=/usr/bin/fusermount3 -u /mnt/gdrive
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now rclone-gdrive.service
systemctl status rclone-gdrive.service
--vfs-cache-mode writes matters: vzdump writes one large file, and without a write cache many applications fail on a cloud mount. Set --vfs-cache-max-size larger than your biggest backup; the cache lives under /root/.cache/rclone, so that disk needs the space.
Check the mount, then add it as storage:
findmnt /mnt/gdrive
mkdir -p /mnt/gdrive/proxmox
pvesm add dir gdrive --path /mnt/gdrive/proxmox --content backup --is_mountpoint /mnt/gdrive --prune-backups keep-last=3
pvesm status
--is_mountpoint stops Proxmox writing backups to the local disk if the mount is down. The storage gdrive now shows in the GUI and can be chosen in a backup job.
Restoring a backup from Google Drive
With Method A, copy the archive back and restore it from the GUI:
rclone ls gdrive-crypt:dump | grep vzdump-qemu-101
rclone copy gdrive-crypt:dump/vzdump-qemu-101-2026_10_18-01_00_02.vma.zst /var/lib/vz/dump/ -P
Then local > Backups, select the file, Restore. Or on the CLI: qmrestore /var/lib/vz/dump/<file>.vma.zst 101 for a VM, pct restore 101 /var/lib/vz/dump/<file>.tar.zst for a container.
With Method B, select the gdrive storage, open Backups and restore directly. Test a restore once after setting this up; a backup you have never restored is a hope, not a backup.
Troubleshooting
Error 403: rateLimitExceeded or User rate limit exceeded. You are probably still on rclone's shared client ID. Create your own (Step 2) and run rclone config reconnect gdrive: after adding it. The rclone docs note Drive allows only about 2 new files per second, so many small files are slow; vzdump archives are few large files, which is fine.
Error 403: The user has exceeded their Drive storage quota. Drive is full. Check with rclone about gdrive: and empty the trash with rclone cleanup gdrive:.
Uploads stop after a few hundred GiB. That is the roughly 750 GiB per day upload limit. Spread big uploads across days.
token expired / invalid_grant after about a week. The OAuth app is still in Testing mode. Publish it (Step 2) and run rclone config reconnect gdrive:.
rclone mount says fusermount3 (or fusermount) is not found. Install FUSE: apt install fuse3.
Backup job fails with No space left on device on the mount. The VFS cache disk is full. Raise --vfs-cache-max-size only if the disk has room, point --cache-dir at a bigger disk, or switch to Method A.
Old service files with --cache-db-purge. That flag is for rclone's deprecated cache backend and does nothing for a normal Drive mount. Remove it and use the VFS flags above.
Better targets for Proxmox Backup Server
If you run Proxmox Backup Server, its deduplicated chunk store does not fit Google Drive. For off-site PBS copies use a second PBS with a sync job, or an S3-compatible object store, which PBS 4.0 supports as a technology preview. Keep Google Drive for vzdump archives from Proxmox VE as shown above.
Final thoughts
With Method A you get fast local backups and an encrypted off-site copy on Google Drive, with no extra cost if you already pay for Google One or Workspace. If you are still building your lab, my ultimate homelab guide and the Proxmox VE complete training course cover storage and backup design in more depth.
Frequently asked questions
Can Proxmox back up directly to Google Drive?+
Not natively. Proxmox VE has no Google Drive storage type. You either let vzdump write to local storage and upload the files to Google Drive with rclone afterwards, or mount Google Drive with rclone mount and add the mount point as a Directory storage for backups. The first way is faster and more reliable.
Can Proxmox Backup Server use Google Drive as a datastore?+
No. Proxmox Backup Server stores backups as many small chunks, which suits local disks and, since PBS 4.0, S3-compatible object storage as a technology preview. Google Drive is neither, and its API rate limits make chunk stores very slow. Use an S3-compatible provider for PBS, and keep Google Drive for vzdump archives.
Do I need my own Google client ID for rclone?+
Yes. The rclone documentation says its shared Google Drive client ID is being retired and will stop working during 2026, and it is heavily rate limited anyway. Create your own OAuth client of type Desktop app in Google Cloud Console and enter its ID and secret in rclone config.
How do I authenticate rclone on a headless Proxmox server?+
Answer n when rclone config asks to use a web browser. It prints an rclone authorize command; run that on a PC with a browser and rclone installed, sign in to Google, and paste the token it prints back into the Proxmox terminal. An SSH tunnel to port 53682 also works.
Is it safe to store Proxmox backups on Google Drive?+
Only if you encrypt them. A vzdump archive contains the whole VM, including passwords and keys. Use an rclone crypt remote on top of the Drive remote so files are encrypted before they leave the server, and keep the crypt password somewhere outside the server.
How much can I upload to Google Drive per day?+
The rclone documentation notes an undocumented limit of about 750 GiB of uploads per day per account. Large VM backups over that will fail until the next day, so keep the daily upload under it or add --drive-stop-on-upload-limit to make rclone stop cleanly.
Sources
- rclone Google Drive documentation, rclone
- rclone crypt documentation, rclone
- rclone remote setup (headless authorisation), rclone
- Proxmox VE Administration Guide, Backup and Restore, Proxmox Server Solutions
Related videos
Video library- Cloud and Self-Hosting
Rclone Tutorial: Install on Windows and Connect OneDrive
· 6:18 · 26K views
Watch on YouTube - Cloud and Self-Hosting
Proxmox Storage with Google Drive Integration - Setup and Best Practices
· 4:51 · 18.2K views
Watch on YouTube - Cloud and Self-Hosting
Proxmox Backup Server 3: Install, Back Up and Restore a VM
· 9:16 · 31.4K views
Watch on YouTube
Keep reading
Cloud and Self-HostingHow to Deploy a Flexible VPS for Apps: Kamatera ReviewNeed to deploy a flexible VPS for apps without committing to a fixed server shape? This Kamatera review examines its configurable cloud servers, scaling options, trial… · 8 min read
Cloud and Self-HostingInstalling Kubernetes Dashboard on a K3s High Availability Cluster (Ubuntu 24.04)The Kubernetes Dashboard is a browser-based UI that allows you to visualize, manage, and troubleshoot workloads and resources inside your Kubernetes clu... · 2 min read
Cloud and Self-HostingInstall a 3-Node HA Kubernetes (K3s) Cluster on Ubuntu Server 24.04 Step-by-Step (Proxmox/VM Friendly)Step-by-step guide to install a 3-node HA Kubernetes (K3s) cluster on Ubuntu Server 24.04 using Proxmox VMs. Includes setup, firewall rules, tokens, and verification. · 5 min read