scripting - 将 WinSCP INI 文件设置为只读以避免并行脚本运行期间出现问题是否安全?

标签 scripting file-access winscp

我们有多个 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/

相关文章:

c# - 需要访问 “Program Files” 文件夹

c# - 从 SQLCLR 调用时,带有 Remove=true 的 WinSCP Session.PutFiles 获取 "Error deleting file System Error. Code: 5"但在 SSIS 脚本任务中工作

c# - 退出应用程序时(使用中)关闭使用的WinSCP session

linux - 使用 linux csh 脚本在许多子目录中执行 makefile

windows - python TypeError : must be encoded string without NULL bytes, 不是 str

linux - 如何使用 sudo 进行输出重定向?

python - python 中的 sys.stdin.fileno() 是什么

ssh - 如何直接在 PuTTY 或 WinSCP 中使用 root 登录亚马逊 ec2?

PowerShell - 如何计算参数数量

javascript - 如何使用 javascript 检查数组中是否已存在匹配正则表达式的字符串