为什么 WinSCP 将远程文件视为已更改/更新,而实际上并非如此?



您好。

我正在使用WinSCP将远程服务器上的文件夹同步到我计算机上的文件夹(我的本地文件夹成为副本(。该文件夹包含许多.TXT和.LOG文件,还有一些子文件夹也包含相同的文件类型。我使用命令->静态自定义命令->保持本地目录最新功能,以保持本地文件夹同步。此功能生成一个PowerShell脚本,该脚本每30秒检查一次远程文件夹。如果有任何新的/更改的文件,它会将它们下载到我的本地文件夹中。这种做法持续了几个月,但突然间,它发现许多旧文件在没有"更改"的情况下被"更改"了。每次WinSCP检查远程文件夹时,它都会检测到1200多个更改的文件,而实际上只有3个左右的文件发生了更改。它将下载所有1200个文件,然后再次检查远程文件夹,并检测到文件数量"已更改",然后再次下载所有文件。请注意,每次远程检查时,"错误更改"文件的数量可能不同,在~900到~1300个文件之间变化。远程目录中的文件+文件夹总数约为2470个。这种假阳性变化检测的循环无休止地持续着,下载了数千个文件,而不是应该下载的2或3个。

我已经尝试重新安装WinSCP,删除服务器书签并创建一个新书签,并以管理员身份运行WinSCP。这些都不起作用。

我通过FTP协议连接到远程服务器,没有加密。

--Martin Prikryl更新——

已经记录了两个会话,请在此处下载这些日志。

几个注意事项:

  • 我试着在一个名为"archive-08-2020"的子文件夹上运行这个程序来限制日志大小,但我无法重现这个问题。这个子文件夹对大约800个文件进行了完全同步,但在第一轮同步后没有发现任何更改的文件。因此,这两个WinSCP日志来自对我的主大文件夹的操作。很抱歉给您带来不便
  • 在这两个会话中,日志文件已经在文件夹中的所有文件上迭代了好几次,而PowerShell屏幕仍在按顺序下载所有文件的第一次运行中
  • 远程文件夹中的文件从chatlog_2020-09-01_0121.txt开始,但PowerShell窗口每次只从chatlog _2020-10-25_0334.txt开始,即使是在同一会话中的连续迭代中也是如此。WinSCP会话日志也从chatlog_2020-09-01_0121.txt开始
  • 远程文件夹有4个子文件夹:archive-05-2020rchive-08-2020。archive-08-2020文件记录在WinSCP会话日志中,但其他子文件夹都没有
  • 一个不应该更新但仍然更新的文件示例是chatlog_2020-11-30_2210.txt

由于某种原因,您的特定FTP服务器的时区偏移自动检测似乎失败了。它可能会随着10月夏令时的结束而开始失败?

尝试在高级站点设置对话框的环境页面禁用时区偏移自动检测。尝试将其设置为0:00

最新更新