连接失败后重新连接 WinSCP,同时保持远程目录保持最新

连接失败后重新连接 WinSCP,同时保持远程目录保持最新

我想通过 FTP 远程同步本地目录。如果我的互联网连接已准备就绪,我可以轻松使用 WinSCP.com 连接到 FTP,并使用以下命令使文件保持最新:

"c:\Program Files (x86)\WinSCP\WinSCP.com" /script=connect.script

我的脚本在哪里:

# Connect
open myftp
# Change remote directory
cd /

# Set options
option batch continue
option reconnecttime 120
option confirm off

# Synchronize
synchronize remote
# Keep Up-to-date
keepuptodate -delete

FTP 服务器是正确设置的 Filezilla Server 版本 0.9.54。'myftp' 参数是使用 WinSCP GUI 配置和命名的部分。

问题是:当我失去连接时(比如有人从服务器机器上拔掉电缆),WinSCP 服务就会终止。

Connected
Starting the session...
Session started.
Active session: [1] myftp
/
batch           continue
reconnecttime   120
reconnecttime   120
confirm         off
Comparing...
Nothing to Synchronize.
Watching for changes, press Ctrl-C to abort...
Scanning '.' for subdirectories...
Watching for changes in 2 directories...
Lost connection.
Disconnected from server
Server is going offline
Session 'myftp' closed.
No session.
winscp>

我原本期望“keepuptodate”会根据参数“reconnecttime”在 120 秒内保持该部分处于活动状态并重试。为什么没有发生?

我发现了一个“技巧”,即使用 Windows 批处理文件和“goto”命令,如果会话关闭,它会继续调用 WinSCP,但它很笨拙,我想知道是否有更好的解决方案。

我正在使用 WinSCP 版本 5.7.6。

答案1

没有更好的解决办法。

使用goto循环的解决方案是您可以获得的最简单的解决方案,可以重新连接命令keepuptodate

参见官方重试脚本/连接尝试的 WinSCP 示例

当然,你的 WinSCP 脚本需要以exit命令,使其自动关闭。

相关内容