Back to Blog
May 3, 2026

From Plesk to AWS S3: Zero-Downtime File Migration Using rclone

rclone aws s3 migration plesk migration zero downtime devops cloud migration file transfer linux server

The Requirement.

In one of my production environments, I had a Plesk server hosting over 250GB of data including websites, media files, and backups. The requirement was to migrate all this data to AWS S3 without affecting live services. The challenge was not just moving the data, but ensuring zero downtime, maintaining data integrity, and avoiding unnecessary costs.

Why rclone?

To handle this migration efficiently, I used rclone — a powerful command-line tool designed for syncing files between servers and cloud storage. It supports resumable transfers, parallel uploads, and incremental sync, making it ideal for large-scale production migrations.

Install rclone.

Terminal
$ curl https://rclone.org/install.sh | sudo bash

Configure AWS S3.

Terminal
$ rclone config

Create a new remote, choose S3, and enter your AWS access key, secret key, and region. Once configured, test the connection using.

Terminal
$ rclone ls s3remote:

Initial Full Sync (No Downtime).

Terminal
$ rclone sync /var/www/vhosts/ s3remote:my-bucket/vhosts \ --progress \ --transfers=8 \ --checkers=16 \ --log-file=/root/rclone.log

This step copies all files to S3 while the website is still live. Since rclone works in the background, there is no impact on users.

Incremental Sync.

Terminal
$ rclone sync /var/www/vhosts/ s3remote:my-bucket/vhosts --progress

After the initial sync, this step transfers only the newly added or modified files, reducing time and bandwidth usage.

Final Sync (Zero Downtime Cutover).

Terminal
$ rclone sync /var/www/vhosts/ s3remote:my-bucket/vhosts --delete-during

Optionally enable maintenance mode for a few seconds, run the final sync, and disable maintenance mode. This ensures complete consistency with near-zero downtime.

Performance Optimization.

Terminal
$ --transfers=16 --checkers=32 --multi-thread-streams=4

These parameters improve speed significantly for large datasets. Adjust based on server capacity and network bandwidth.

Common Issues

- Hidden files not syncing → ensure correct directory path - Slow transfer → increase parallel transfers - Interrupted sync → rerun command (rclone resumes automatically)

Final Result.

The migration was completed successfully with zero downtime. All data was securely transferred to AWS S3, and the process proved to be reliable, repeatable, and cost-effective.

Conclusion

For production environments, migrations must be planned carefully to avoid service disruption. Using rclone, it is possible to achieve seamless file transfers with full control and minimal risk. This approach is highly recommended for infrastructure engineers handling large-scale cloud migrations.

# References