Software & AppsOperating SystemLinux

How To Trigger Rsync on File Modification in Virtual Box Shared Folders

Ubuntu 3

In today’s digital world, keeping your files synchronized and up-to-date is crucial. One of the most popular tools for this task is rsync, a fast, versatile file copying tool that can be used to synchronize files between different directories, on the same machine, or between different machines. In this article, we will explore how to trigger rsync on file modification in Virtual Box shared folders using three different methods: inotifywait, lsyncd, and fswatch.

Quick Answer

To trigger rsync on file modification in Virtual Box shared folders, you can use inotifywait, lsyncd, or fswatch. These tools allow you to monitor file system events and automatically sync changes to the target directory in real-time or near real-time.

Introduction to Rsync

Rsync is a powerful tool that allows you to synchronize files and directories between two locations on a local machine or between two machines over any remote shell, or from/to a remote rsync daemon. It provides fast incremental file transfer by transferring only the differences between the source and the destination.

Method 1: Using inotifywait

inotifywait is a command-line tool that uses the inotify (inode notify) subsystem of the Linux kernel to wait for changes to files or directories. Here’s an example of how to use inotifywait with rsync:

while inotifywait -r -e modify,create,delete /directory; do
 rsync -avz /directory /target

In this command, -r is for recursive, -e specifies the event types to watch for, and /directory is the directory to monitor. When a modification, creation, or deletion event occurs in /directory, rsync is triggered to sync the changes to the /target directory.

Method 2: Using Lsyncd

Lsyncd (Live Syncing Daemon) is a lightweight live mirror solution that uses inotify to monitor file system events and then spawns rsync to perform the synchronization. You can find installation instructions and tutorials for different operating systems on the Lsyncd GitHub page.

Method 3: Using fswatch

fswatch is a cross-platform file change monitor that can execute arbitrary commands when files change. Here’s how to use fswatch with rsync:

fswatch -o /directory | xargs -n1 -I{} rsync -avz /directory /target

In this command, -o tells fswatch to use a one-line output format, which is easier to parse. xargs -n1 -I{} is used to execute rsync once for each modified file.


By using inotifywait, lsyncd, or fswatch, you can trigger rsync on file modification in Virtual Box shared folders. This will ensure that your changes are synced to the target directory in real-time or near real-time, keeping your files up-to-date and synchronized.

Remember to choose the solution that best fits your requirements and system setup. With the right tools and configurations, you can automate your file synchronization tasks and make your work more efficient.

Leave a Comment

Your email address will not be published. Required fields are marked *