Is there any way to run multiple keepuptodate commands concurrently within one instance of WinSCP? Right now I open multiple, separate instances of WinSCP (via command line automation), each connected to its own site profile (i.e. remote/local folder mapping) and then execute the keepuptodate command. This works fine, though I am limited to watching 8 local folder trees because my remote FTP server is a “shared hosting” environment, and I’m limited to 8 simultaneous FTP connections. In other words, is it possible to configure a single instance of WinSCP to keepuptodate several discrete local folder trees?
As a potential workaround, I created a mirror of my entire remote FTP folder tree on my local machine (the local folder structure is different than the remote folder structure) using Windows junctions and hardlinks. This allows me to open one instance of WinSCP, connect to my remote server, and keepuptodate one local folder tree (that contains every folder on my remote system.) This works, and WinSCP reports ‘Watching for changes in 325 directories…’, *however* Windows does not immediately detect every change in my local folders, so remote folders are not updated immediately/consistently. I believe this is a limitation of Windows folder watching capabilities and/or the way Windows resolves junctions/symlinks/hardlinks. Also, using this method requires that WinSCP/Windows ‘watches for changes’ in many unnecessary folders since I’m only trying to keepuptodate about 150 folders. Overall, this workaround is fragile and less than ideal.
The other alternative is to simply forego the “real-time” remote folder updates and simply synchronize the folders every hour or so using command line options and Windows Task scheduler. In that case, I’m working from these assumptions:
* script commands share configuration with GUI…
* but ‘open’ command does not load GUI transfer settings? --- do command line instances of WinSCP share GUI transfer settings?
* GUI ‘Keep remote directory up to date’ (keepuptodate) inherits default options from GUI ‘Synchronize’
* once my synchronize/keepuptodate settings are finalized in the GUI, I can hard code them to my script, essentially bypassing the GUI configuration (preferred)
* Synchronize ‘both’ option ignores filesize, preferentially updating either local or remote with newest files (by timestamp)