Echosync Documentation
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.
My security software tells me that Echosync could be dangerous. What should I do?
Windows SmartScreen and many antivirus programs consider files to be suspicious if their 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. The highly questionable behavior of Windows SmartScreen (which is not as smart as its name suggests) is known and seems assumed by Microsoft itself. As a result, each time Echosync is updated, and for a few days afterwards, rather alarming alerts may be displayed upon installation:
For the most zealous antivirus products on the market, the period of mistrust may even last several months, until the publisher is informed of the false positive.
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 more wary or worried can test the Echosync installation file on VirusTotal, which uses over 70 different antivirus engines.
For Windows SmartScreen, the Run Anyway button will install Echosync. As for antivirus programs, they all have options for authorizing the execution of software considered safe by the user.
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 directory. 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, otherwisefalse
(default value;:false
); - DisableTelemetry :
true
to disable automatic sending of Echosync version number, and Windows version and language, at Echosync or Echocli startup, otherwisefalse
(default value:false
); - IgnoreSystemFiles :
true
if files with the system attribute are to be ignored during comparison and synchronization operations, otherwisefalse
(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, otherwisefalse
(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 or Alt + 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.
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 synchronization modes can be defined directly under the profile name:
- Copies in the destination folder the new files and directories in the source folder;
- Deletes in the destination folder the deleted files and directories in the source folder;
- Overwrites in the destination folder the modified files in the source folder, if they are newer than those in the destination folder;
- Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder;
- Renames or moves in the destination folder the renamed or moved 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.
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.
The available sync profiles can be viewed using the list
command.
For example, to display all sync profiles whose name starts with “my”, simply enter echocli list my*
.
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.
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.
For example, to delete the profile “My profile”:
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:
How to synchronize from or to a folder on a smartphone?
By connecting the smartphone in UMS mode
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.
Using the mobile application Link with Windows
Microsoft has integrated a feature into Windows 11 that allows seamless access to a smartphone’s folders and files from within file explorer. To activate this feature, go to Settings, Bluetooth and devices, Mobile devices and Manage devices. An option will make the smartphone’s files visible in the file explorer and therefore in Echosync.
Using a WebDAV server on the smartphone
Finally, it is possible to use the WebDAV protocol to access files on the smartphone. This requires the smartphone to be connected to the same network as the computer running Echosync. The smartphone must therefore be connected via WiFi to your local network. Next, you need to use a WebDAV server on the smartphone. Once the WebDAV server is up and running, please note the address of the file server. Let’s take the example of a server available at the address http://192.168.1.18:8080
. To access this file server from a Windows application, rewrite the URL address as \\[IP_ADDRESS]@[PORT]\DavWWWRoot
, in this case \\192.168.1.18@8080\DavWWWRoot
. Simply fill in the path with the names of the folders and sub-folders making up the targeted tree structure, e.g. \\192.168.1.18@8080\DavWWRoot\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.
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.
What kind of difference does Echosync detect?
Echosync proceeds by comparison, by detecting the differences relative to the differences in the data:
- Copies in the destination folder the new files and directories in the source folder. Files and folders not found in the destination, but present in the source, will be copied to the destination.
- Overwrites in the destination folder the modified files in the source folder, if they are newer than those in the destination folder. These files and directories, which cannot be found in the source but are still present in the destination, will be deleted in the destination. Caution: this operation may result in data loss.
- Overwrites files modified in the source folder in the destination folder, if they are more recent than those already present in the destination folder_. These files, which are present in both the source and destination folders, but whose modification date in the source folder is more recent than in the destination folder, will be overwritten in the destination folder.
- Overwrites in the destination folder the modified files in the source folder, even if they are older than those already in the destination folder. These files, which are present in both the source and destination folders, but whose modification date in the source folder is older than in the destination folder, will be overwritten in the destination folder. Caution: this operation may result in data loss.
- Renames or moves in the destination folder the renamed or moved files and directories in the source folder. Those identical files present in the source and destination, but whose path differs because they have been renamed or moved in the source, will be moved and/or renamed in the destination. Attributes of read-only, hidden or system files that have changed in the source will be synchronized in the destination. Folder attributes are not synchronized.
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 directory.
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 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 shell script (.ps1, .bat, .cmd).
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.