Echosync documentation

You will find below the Echosync documentation, in the form of frequently asked questions.

Need some help? Before requesting technical support, please make sure that the answer to your question is not already on this page. If you wish to report a bug, please follow the recommendations in this article: How to report a bug efficiently?

Technical support is provided free of charge, by the author of Echosync, on his free time. If you want to thank him for his service, you can make a donation via PayPal.

Contact technical support


Table of Contents

Start with Echosync

What are the limits and constraints of Echosync?

Echosync has the following limits and constraints:

  • Echosync requires administrator rights to synchronize files locked by another process (VSS). Some features can be disabled if Echosync is started without administrator rights.
  • Echosync is a synchronization software oriented "folders" and not "files" or "library". The level of granularity being the directory (the root of a volume included), it is not possible to exclude from synchronization some files contained in a source folder.
  • Echosync does not keep several versions of the same file. It is therefore not possible to "go back in time" by retrieving a version prior to the last synchronization. It is however possible to create several profiles targeting the same source folder and to synchronize them alternately.
  • Echosync is a unidirectional synchronization software, which means that changes always go from the source (which can be read-only) to the destination. If this mode of operation has the merit of simplicity, it may not meet all needs. An alternative is to create two profiles by reversing the source and destination.

In which languages is Echosync available?

Echosync is available in English, French, Italian, Spanish, German, Chinese, Dutch and Russian. By default, Echosync starts in the language of Windows if it is available, and in English if not.

The language used can be changed at any time in the Options menu of Echosync. Echocli also takes this setting into account for its display.

Candidates interested in helping with the translation of Echosync are invited to contact the technical support. Thanks to its volunteer users, Echosync is also available in Italian, Spanish, German, Chinese, Dutch and Russian.

What is the difference between Echosync.exe and Echocli.exe?

Echosync has a graphical interface for ease of use and accessibility.

Echocli is a command line program. It is recommended to use it with a modern command line interpreter supporting Unicode characters such as Windows Terminal.

How to use and update the portable version of Echosync?

To use Echosync in portable mode, just unzip the Echosync archive to the location of your choice (like a USB key), avoiding choosing a folder that requires administrator privileges to write to (like the Program Files folder).

Echosync comes with a PowerShell script for automatic updates. During the update, the old folder is renamed. You can safely delete it after making sure that the new version is fully functional.

A Windows SmartScreen alert occurs during Echosync installation. What should I do?

Windows SmartScreen considers as suspicious files whose reputation and safety, depending on the number of downloads of the file in question, has not yet been established. This is, by definition, the case for any newly released file. As a result, each time Echosync is updated, and for a few days thereafter, some rather alarming alerts may be displayed during installation:

Windows SmartScreen Alert

If Echosync has been downloaded from a reliable source such as this site, or via the command winget install SylvainRougeaux.Echosync, this alert can be safely ignored. The Run anyway button will install Echosync.

The highly questionable behavior of Windows SmartScreen (which is not as smart as its name suggests) is known and seems assumed by Microsoft itself.

A permanent solution would be to electronically sign Echosync binaries with an electronic code-signing certificate, but these are particularly expensive and have to be renewed periodically. Increases in the price of these certificates (x4 in 2023) have overcome the goodwill of Echosync's volunteer developer.

What advanced settings are available?

Some advanced Echosync or Echocli settings cannot be modified via the user interface. These settings are stored in JSON files in the application's Profiles subdirectory. They should be modified using a text editor (e.g. Notepad or Visual Studio Code). Only modify them if you know what you're doing.

The following advanced settings, common to Echosync and Echocli, are available in the AdvancedSettings.json file:

  • DisableCrashReporting : true to disable Echosync or Echocli automatic crash reporting, otherwise false (default value;: false);
  • DisableTelemetry : true to disable automatic sending of Echosync version number, and Windows version and language, at Echosync or Echocli startup, otherwise false (default value: false);
  • IgnoreSystemFiles : true if files with the system attribute are to be ignored during comparison and synchronization operations, otherwise false (default value: true).

The following Echosync-specific advanced parameter is available in the GuiSettings.json file:

  • CheckUpdatesOnStartup : true to automatically check for the availability of a new version at Echosync startup, otherwise false (default value: true).

Once you've modified the desired parameters in the JSON files, simply save them. Echosync takes account of the changes immediately.

Can I customize the look and feel of Echosync?

Echosync offers a number of graphic themes to suit every user's taste. Themes can be selected from the Options menu. You can switch between themes using the Alt+Left/Right keyboard shortcut, and see the results immediately.


Synchronization profiles

How to create a synchronization profile?

**With the graphical user interface***

The user can create a new synchronization profile after filling in the fields in the Create a new synchronization profile window, which the user can open by clicking on the New... link in the top right corner of the software.

Window for creating a new synchronization profile

Echosync displays the list of loaded profiles, with for each of them, their name, source and destination directory, the date of their last synchronization, their status and a free description given by the user. The name and description of the profile can be modified at any time.

The desired synchronisation modes can be set directly in the main window of the software.

Synchronization mode definition

  • Synchronize moved or renamed items: renames or moves to the destination folder the files and directories renamed or moved in the source folder.
  • Synchronize deleted items: Deletes files and directories in the destination folder that have been deleted in the source folder.
  • Synchronize the modified items, more recent in the source folder: overwrites in the destination folder the files modified in the source folder, if they are more recent than those already present in the destination folder.
  • Synchronize the modified items, older in the source: overwrites in the destination folder the files modified in the source folder, even if they are older than those already present in the destination folder.
  • Synchronize new items: copies to the destination folder the new files and directories in the source folder.

With the command line

A synchronisation profile can be created from the command line using Echocli's create command, passing the desired options as parameters.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe create --help

DESCRIPTION:
Create a new sync profile for this computer

USAGE:
    echocli create [name] [source] [destination] [OPTIONS]

ARGUMENTS:
    [name]           The sync profile name
    [source]         The source folder
    [destination]    The destination folder

OPTIONS:
    -h, --help              Prints help information
        --description       The sync profile description
        --create            Copies in the destination folder the new files and directories in the source folder
        --delete            Deletes in the destination folder the deleted files and directories in the source folder
        --overwriteOlder    Overwrites in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder
        --overwriteNewer    Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder
        --move              Renames or moves in the destination folder the renamed or moved files and directories in the source folder
        --safe              Equals to "--create true --delete false --overwriteOlder true --overwriteNewer false --move true"
        --mirror            Equals to "--create true --delete true --overwriteOlder true --overwriteNewer true --move true"

For example: echocli create "Project X" C:\source D:\destination. If no option is passed as a parameter, as in this example, the --safe option is used by default.

In the example echocli create "Super Project" C:\source D:\destination --mirror --description "Mirror of SP on USB key", a synchronisation profile named "Super Project" is created with the specified description, enabling all synchronisation options so that the destination folder mirrors the source folder.

It is possible to create a synchronisation profile interactively using the create command with no arguments or options. All you have to do is to let yourself be guided by the questions that are asked.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe create

[1/9] Enter a name for the sync profile: My profile
[2/9] Enter a source folder for the sync profile: C:\source
[3/9] Enter a destination folder for the sync profile: D:\destination
[4/9] Do you want to copy in the destination folder the new files and directories in the source folder? [y/n] (y): y
[5/9] Do you want to delete in the destination folder the deleted files and directories in the source folder? [y/n] (n): y
[6/9] Do you want to overwrite in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder? [y/n] (y): y
[7/9] Do you want to overwrite in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder? [y/n] (n): y
[8/9] Do you want to rename or move in the destination folder the renamed or moved files and directories in the source folder? [y/n] (y): y
[9/9] Enter an optional description for the sync profile (): My description

╭─ My profile (e792fc31-4a93-4198-a397-c32405fbd3c4) ───────────────────────────────────────────────────╮
│                                                                                                       │
│ Source Folder:                            C:\source\ → The source folder is unavailable.              │
│ Destination Folder:                       D:\destination\ → The destination folder is unavailable.    │
│ Description:                              My description                                              │
│                                                                                                       │
│ Sync new items:                           Yes                                                         │
│ Sync deleted items:                       Yes                                                         │
│ Sync modified items, newer in the source: Yes                                                         │
│ Sync modified items, older in the source: Yes                                                         │
│ Sync moved or renamed items:              Yes                                                         │
│                                                                                                       │
│ Last Sync:                                never synchronized yet                                      │
│                                                                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯

The sync profiles have been saved successfully.

The available sync profiles can be viewed using the list command.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe list --help

DESCRIPTION:
Show sync profiles for this computer

USAGE:
    echocli list [profiles] [OPTIONS]

ARGUMENTS:
    [profiles]    The sync profile names to show, wildcard pattern (*, ?) can be used

OPTIONS:
    -h, --help       Prints help information
        --noCheck    Do not check if sync profiles are ready to sync, show basic informations about sync profiles faster

For example, to display all sync profiles whose name starts with "my", simply enter echocli list my*.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe list my*

╭─ My profile (e792fc31-4a93-4198-a397-c32405fbd3c4) ───────────────────────────────────────────────────╮
│                                                                                                       │
│ Source Folder:                            C:\source\ → The source folder is unavailable.              │
│ Destination Folder:                       D:\destination\ → The destination folder is unavailable.    │
│ Description:                              My description                                              │
│                                                                                                       │
│ Sync new items:                           Yes                                                         │
│ Sync deleted items:                       Yes                                                         │
│ Sync modified items, newer in the source: Yes                                                         │
│ Sync modified items, older in the source: Yes                                                         │
│ Sync moved or renamed items:              Yes                                                         │
│                                                                                                       │
│ Last Sync:                                never synchronized yet                                      │
│                                                                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯

Since the wildcard "*" is the default, the echocli list command displays all available sync profiles.

Once created, a sync profile can be modified using the configure command.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe configure --help

DESCRIPTION:
Configures the specified sync profile

USAGE:
    echocli configure [profile] [OPTIONS]

ARGUMENTS:
    [profile]    The sync profile name to configure

OPTIONS:
    -h, --help              Prints help information
        --name              The sync profile name
        --source            The source folder
        --destination       The destination folder
        --description       The sync profile description
        --create            Copies in the destination folder the new files and directories in the source folder
        --delete            Deletes in the destination folder the deleted files and directories in the source folder
        --overwriteOlder    Overwrites in the destination folder the modified files in the source folder, if they are newer than those already in the destination folder
        --overwriteNewer    Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder
        --move              Renames or moves in the destination folder the renamed or moved files and directories in the source folder
        --safe              Equals to "--create true --delete false --overwriteOlder true --overwriteNewer false --move true"
        --mirror            Equals to "--create true --delete true --overwriteOlder true --overwriteNewer true --move true"

The command echocli configure test --name "new name" --safe allows, for example, to change the name of the profile "test" to "new name" and to enable modes of synchronisation which are not likely to cause data loss in the destination.

Where are the synchronization profiles stored?

The synchronization profiles are stored in an XML file, named as the machine that created it, with an XBP extension (XML Backup Profiles). This file is stored in the Profiles subdirectory of the application (in portable mode) or in the %LOCALAPPDATA%\Echosync\Profiles folder (if Echosync is installed on the machine).

The synchronization profiles are associated with the name of the machine that created them. In other words, only the profiles corresponding to the machine running the software are displayed. As Echosync can be used in portable mode (e.g. directly from the destination media itself), it was necessary to manage the case of profiles created on separate PCs.

How to delete the synchronization profiles?

**With the graphical user interface***

Selected profiles (Ctrl+click for a non-contiguous multiple selection, and Shift+click for interval selection) can be deleted by clicking on the Delete link.

Deleting a synchronization profile does not delete any files.

With the command line

Sync profiles can be removed with Echocli's remove command, passing their names as parameters, being specified that wildcards are correctly interpreted.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe remove --help

DESCRIPTION:
Remove the specified sync profiles

USAGE:
    echocli remove [profiles] [OPTIONS]

ARGUMENTS:
    [profiles]    The sync profile names to remove, wildcard pattern (*, ?) can be used

OPTIONS:
    -h, --help     Prints help information
    -f, --force    Removes the sync profiles without confirmation

For example, to delete the profile "My profile":

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe remove "my profile"

Do you really want to remove the sync profile "My profile"? [y/n] (n): y
The sync profile "My profile" has been successfully removed.
The sync profiles have been saved successfully.

How to exclude some subfolders of the source folder from synchronization?

It is possible to exclude some subfolders contained in the source folder from synchronization. To do so, it is necessary to edit the XML file in which the profiles are saved. You can then add each subfolder to be ignored during synchronization by adding it to the XML tag SourceFoldersExclusion of the corresponding profile, as follows:

<SourceFoldersExclusion>
    <string>C:\Source\Absolute path to a sub-directory of the source to be ignored</string>.
    <string>Subfolder\Relative path to a directory to be ignored</string>
</SourceFoldersExclusion>

How to synchronize from or to a folder on a smartphone?

The easiest way to access the memory (internal or memory card) of a smartphone is to "mount" it on the computer in UMS mode (USB mass storage device class). Thus, access to the smartphone's memory is done in the same way as any other drive such as a USB key, either with the Windows file explorer or Echosync.

Unfortunately, the UMS mode is less and less available on recent smartphones, in favor of the much more limited MTP mode (Media Transfer Protocol): access to media files only, no mount point for universal and standard access, etc. So you'll have to find a way to access more freely to the smartphone files.

One possible solution is to use the WebDAV protocol to access the smartphone files. This requires to connect the smartphone on the same network as the computer running Echosync. The smartphone must therefore be connected to your local network via Wi-Fi. Then, you need to use a WebDAV server on the smartphone. You can find several of them on mobile application stores.

Under Android, for example, you can use the WebDAV Server app available on the Google Play Store. Once the app is launched and the WebDAV server is initialized, please note the file server address.

WebDAV Server

In this example, the server is available at http://192.168.1.18:8080. To access this file server from a Windows application, rewrite the URL as \\[IP_ADDRESS]@[PORT]\DavWWWRoot, in this case \\192.168.1.18@8080\DavWWWRoot. It is enough to complete the path with the name of the folders and sub-folders composing the targeted tree, for example, \\192.168.1.18@8080\DavWWWRoot\DCIM\Camera to access the files and sub-folders contained in the DCIM\Camera folder. The full path can be used in Windows File Explorer or Echosync, as a source or destination folder.


Folder comparison and synchronization

How to launch a comparison or synchronization operation?

With the graphical user interface

The Compare and Synchronize buttons are used to launch the comparison, and then if necessary the synchronization, of the source folder with the destination folder of the selected profiles.

The Pause and Cancel buttons are used to pause or cancel the current operation.

The result of the comparison is immediately displayed to the user, by showing a future view of the destination folder.

Comparison results

With the command line

The Echocli commands compare and sync are used to compare and synchronize the source folder with the destination folder of the sync profiles whose names are passed as parameters, it being specified that wildcards can be used.

It is possible to interrupt the current operation by sending the SIGINT signal with the Ctrl+C key combination. The current operations are then cancelled cleanly.

The result of the comparison is immediately shown to the user by displaying a future view of the destination folder in the console.

PS E:\Echocli\bin\x64\Debug> .\Echocli.exe compare nas-software

╭─ NAS-software (3beba0ec-ebd6-4d8a-af8c-e753400eb092) ───────────────────────────────────────────────────────────────────╮
│                                                                                                                         │
│ Source Folder:                            D:\NAS\software\Sylvain\                                                      │
│ Destination Folder:                       \\TOWER\software\Sylvain\                                                     │
│ Description:                              Software synchronization to NAS                                               │
│                                                                                                                         │
│ Sync new items:                           Yes                                                                           │
│ Sync deleted items:                       Yes                                                                           │
│ Sync modified items, newer in the source: Yes                                                                           │
│ Sync modified items, older in the source: Yes                                                                           │
│ Sync moved or renamed items:              Yes                                                                           │
│                                                                                                                         │
│ Last Sync:                                2 months ago (19/02/2023 02:20:21)                                            │
│ Sync Log Path:                            E:\Echocli\bin\x64\Debug\Profiles\3beba0ec-ebd6-4d8a-af8c-e753400eb092.log    │
│                                                                                                                         │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Warning: Traversation loop detection will not be available for [\\TOWER\software\Sylvain\].

📂 \\TOWER\software\Sylvain
└── 📂 Microsoft
    └── 📂 Office 2021 ProPlus
        ├── 📄 ProPlus2021Retail.img → New file to copy (4 629 426 KB, 13/04/2023 23:15:38)
        └── 📄 Votre clé d'activation Office 2021 Professionnel Plus (72019523).eml → New file to copy (56 KB, 13/04/2023 23:58:11)

╭──────────────────────────────────────────┬───────┬─────────╮
│ Process                                  │ Count │    Size │
├──────────────────────────────────────────┼───────┼─────────┤
│ File or folder to rename or move         │     0 │  0 byte │
│ Missing file or folder to delete         │     0 │  0 byte │
│ Newer file to copy                       │     0 │  0 byte │
│ Older file to copy                       │     0 │  0 byte │
│ New file to copy or new folder to create │     2 │ 4,42 GB │
╰──────────────────────────────────────────┴───────┴─────────╯

What kind of difference does Echosync detect?

Echosync proceeds by comparison, by detecting the differences relative to the differences in the data:

  • Deleted elements corresponding to files and directories not found in the source but still present in the destination. These elements will be deleted in the destination. Be careful, this operation can lead to a loss of data.
  • Modified elements, more recent in the source, corresponding to the files present in the source and in the destination but whose modification date of the files present in the source is more recent than that of the files in the destination. These files will be overwritten in the destination.
  • Modified elements, older in the source corresponding to the files present in the source and in the destination but whose modification date of the files present in the source is older than that of the files in the destination. These files will be overwritten in the destination. Be careful, this operation can lead to a loss of data.
  • Moving or renaming elements corresponding to identical files present in the source and in the destination but whose path differs because they have been renamed or moved in the source. These files will be moved and/or renamed in the destination. Also included in this section are files whose read only, hidden or system attribute has changed in the source. These file attributes will be synchronized in the destination. Folder attributes are not synchronized.
  • New elements corresponding to files and folders not found in the destination but present in the source. These new elements will be copied to the destination.

By default, Echosync ignores files with the system attribute. It is possible to include these files by setting the IgnoreSystemFiles parameter to false in the AdvancedSettings.json configuration file, located in the Profiles subdirectory of the application.

Why are my files identified as different when they have not been modified?

Echosync relies on file modification dates to identify files that need to be updated. However, not all file systems have the same accuracy in time stamping and rounding beyond the second can occur when copying files.

For example, file timestamps on FAT drives (FAT16, FAT32, exFAT) are rounded to the nearest two seconds (even number) when the file is written to the drive. File timestamps on NTFS drives are rounded to the nearest 100 nanoseconds when the file is written to the drive. So when files are copied from an NTFS drive to a FAT drive, the file timestamp is rounded up to the next even second. This means that there can be a difference of up to 2 seconds in the date of modification of the file even though the file has not undergone any change in its contents.

This table illustrates this principle with some examples:

Timestamp of the file on an NTFS partition Timestamp of the file after copying on a FAT partition
7 h 31 min 0 s 000 ms 7 h 31 min 0 s 000 ms
7 h 31 min 0 s 001 ms 7 h 31 min 2 s 000 ms
7 h 31 min 1 s 000 ms 7 h 31 min 2 s 000 ms
7 h 31 min 1 s 999 ms 7 h 31 min 2 s 000 ms

Similarly, the NTFS file system stores time values in UTC format, so they are not affected by changes in time zone or daylight saving time. The FAT file system stores time values based on the local time of the computer. For example, a file that is saved at 3:00pm PST in Washington is seen as 6:00pm EST in New York on an NTFS volume, but it is seen as 3:00pm EST in New York on a FAT volume.

While Echosync ignores millisecond differences by default, a difference of one second or more is considered a potential change. Therefore, it is recommended to avoid synchronizing folders between NTFS and FAT drives. FAT file systems that are intended to be used only under Windows will be conveniently converted or reformatted to the more efficient NTFS.

How to program the synchronizations?

Echosync does not have its own programmer. This would have implied to have a resident program in memory at all times to trigger the synchronizations, increasing the memory consumption and the machine startup time.

However, since synchronizations can be launched from the command line, it is relatively easy to automate synchronizations with the Windows task scheduler. It is recommended that you use Echocli to schedule your synchronizations, although this is also possible with Echosync.

With the command line

The launching of synchronization operations with Echocli is documented above.

With the graphical interface

It is possible to give the names of the profiles as arguments to the Echosync executable, being specified that wildcards are correctly interpreted (e.g.: NAS* will launch the synchronization of all profiles starting with 'NAS'). If profile names contain spaces, it is advisable to surround them with quotation marks when they are passed as arguments to Echosync.

Example: Echosync.exe NAS* profile1 "profile 2"

It is possible to start Echosync in the so-called "silent" mode. This mode hides the splash screen and automatically reduces the program window in the taskbar. To do this, just pass the /silent argument on the command line.

It is also possible to define the Echosync behavior at the end of the synchronization operations.

How to detect synchronization errors?

Even after closing the program, it is possible to consult the synchronization log to check that the comparison and synchronization operations have been carried out correctly. Please note that if the size of the synchronization log exceeds 5 MB, it will be renamed (adding a timestamp in brackets) and a new log file will be created.

With the graphical interface

The Status column of the comparison report mentions, if applicable, the reason why the synchronization of an element could not be completed successfully.

It is possible to consult the log of previous operations by right-clicking on a profile and selecting the View synchronization log command.

With the command line

Any errors occurring during synchronization operations will be displayed in the console.

The location of the operation log is specified each time the Echocli commands list, compare and sync are used.

Can we launch the synchronization or the comparison of several profiles simultaneously?

If several profiles are selected in Echosync, or specified as parameters in Echocli, when the comparison or synchronization is started, the operations are performed sequentially. In Echosync, the status of the profiles mentions the delayed start of a comparison or synchronization operation.

A simultaneous start of operations can be forced by explicitly starting the desired operation for each profile. This is beneficial in terms of performance only in very rare circumstances. Indeed, there is no point in launching several synchronizations simultaneously if the maximum read/write rate of the storage medium used is reached or if the bandwidth of the connection used (USB 2 in particular) is saturated.

How to program the automatic shutdown of the PC or the closing of Echosync at the end of the synchronization operations?

With the graphical interface

The Options menu allows you to choose an action to be performed once the synchronization operations are completed: shut down the computer, put it in hibernation or close Echosync (unconditionally or only if no error occurred during synchronization).

The automatic shutdown of the PC, the hibernation of the PC or the closing of Echosync can also be programmed from the start of the software by adding respectively the argument /shutdown, /hibernate, /exit or /exitonsuccess to the command line.

With the command line

Echocli does not have any specific option for automatically shutting down the PC at the end of synchronization operations. However, as Echocli is a command line program, it is possible to call the Windows tool shutdown.exe after Echocli in a PowerShell or DOS script.

How can I automatically execute actions before or after a synchronization operation?

Echosync does not allow you to specify commands to be executed before or after a synchronization, such as closing or starting third-party software. However, it is possible to create a script in the language of your choice (e.g. PowerShell) which will itself call Echocli at the appropriate time with the right parameters.

Some have been deleted by mistake due to incorrect handling. What can I do?

Echosync is a file synchronization software, not a data backup software, in the sense that it does not allow you to restore a previous version of a file in the event of an error that has led to data loss.

Note that files deleted by Echosync do not go into the recycle bin.

In the absence of a backup of lost data, it is always possible to attempt to use data recovery tools, such as Microsoft's Windows File Recovery.