我们有多个 WinSCP 进程来从外部服务器上传/下载文件。这些作业按计划运行,但由于运行如此频繁,因此经常会重叠。
有时我们可以成功地将文件上传到服务器,但 WinSCP 会像失败一样退出,因为它无法写回 ini 文件。
Error writting to file 'c:\progra~1\winSCP\WinSCP.ini'
System Error. Code: 32.
The process cannot access the file because it is being used by another process
这似乎是由于两个或多个进程试图同时写回 ini 文件造成的。
这会导致我们将上传的文件视为失败,并在下次运行时重新上传它们(当您处理事务数据时,效果不太好)
根据Configuration Guide ,我们可以将WinSCP ini文件的属性设置为只读:
Particularly when using shared INI file, you can set read-only attribute to the INI file to prevent WinSCP from overwriting the file.
在进行此更改之前,我希望有人能告诉我以下信息:
到底什么内容被写回文件?
将文件设置为只读可能会出现什么问题?
最佳答案
一般情况下,脚本运行后不会写入重要的数据,可能是一些缓存、统计数据等,你可以自己对比一下运行前后的INI文件看看。
您也许可以关闭所有这些以避免 WinSCP 写入它们,但是 setting the INI file read only更可靠,无论如何我都会推荐它。您对此没有任何问题。
虽然最佳实践是 not to rely on external configuration .
关于scripting - 将 WinSCP INI 文件设置为只读以避免并行脚本运行期间出现问题是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26039316/