Rsync is a lightweight, proven tool for reliable file replication, migration, and backup. It is also a staple on Linux systems, but sadly VMware never included it with ESXi, perhaps favoring commercial backup solutions.
This project restores essential Linux functionality on VMware ESXi by providing a fully static and portable rsync build, enabling reliable host-to-host and datastore-to-datastore file replication.
If you dont wan't to build your own, download here:
- Latest version: rsync v3.4.1 for ESXi
Debian 13 | Ubuntu 24 | RHEL 9 & 10 | CentOS 9 & 10 | Fedora 42 & 43
All build files are created in $HOME/build-static
RedHat specific Notes:
- The build script will first try to install the distro package
glibc-static
. - If
glibc-static
is unavailable in the OS repo, the script automatically builds glibc-static and extracts it to $HOME/build-static.
-
On a fresh supported system, run the build script (not as root or sudo):
./rsync-esxi-builder-multiOS.sh
-
Copy the compiled
rsync
binary from$HOME/build-static/rsync/bin
to all ESXi hosts. -
On each ESXi host, set execute permissions on the new rsync executable:
chmod 755 /path/to/rsync
-
From ESXi 8 onwards you must manually permit execution of non-native binaries:
esxcli system settings advanced set -o /User/execInstalledOnly -i 0
-
Configure destination RSA SSH keys for passwordless host-to-host authentication.
(Note: VMware ESXi 8 does not yet support Ed25519 keys for ESXi host-to-host sessions.)
This replication script is written in POSIX-compliant shell and supports replication between ESXi, BusyBox, and GNU/Linux systems.
The script provides:
- Reliable ESXi-to-ESXi or Linux-to-ESXi replication
- Fast/Safe copy modes for optimized transfer or reliability
- Automatic failover and retries on network or file errors
- Checksum verification for end-to-end data integrity
- Detailed logging for auditing and troubleshooting
- Automatic cleanup of orphan
rsync
processes
-
Ensure an rsync binary is installed on both source and destination ESXi hosts.
-
Set up RSA SSH keys for passwordless ssh access from the source host to the destination host.
-
Configure script options for source | destination | rsync binary paths | private key | excl 58EF udes (optional)
-
Choose your replication mode:
- FAST:
--fast
– quick copy for high bw, networked filesystems or CPU constrained (minimal verification) - SAFE:
--safe
– slower but highly resilient, verifies all transferred data, can resume copy
- FAST:
-
Optional flags:
--dry-run
→ Test the replication without copying files--checksum
→ Verify file integrity after transfer--checksum-type=<algo>
→ Specify checksum algorithm (xxh3
,md5
, etc.)--no-excludes
→ Copy all files regardless of exclude list
-
Run the replication script:
./rsync-host2-host.sh --safe --checksum
-
Monitor the logs for progress and errors. Logs are saved with timestamps in the configured log directory.
-
Recover from failures:
- FAST mode automatically falls back to SAFE mode on errors or a user configurable timeout
- Script will retry indefinitely (with user configurable retry intervals) until successful