尝试使用lftp
进行镜像时,我收到以下输出(-d
调试模式):
<--- 227 Entering Passive Mode {some numbers}
---- Connecting data socket to (more numbers and port)
---- Data connection established
---> REST 0
<--- 350 Restart position accepted (0).
---> RETR {some filename}
当我打开这个文件时,文件已损坏 - 文件的内容向下移动了几行,然后在它上面写入了文件的正常副本。例如,如果文件有五行(为紧凑起见,未显示换行符):第 1 行 第 2 行 3 行 4 行 5,则损坏的文件将读取:第 1 行 第 2 行 3 行 3 行 4 行 5。
鉴于我在这种ftp/网络组合中遇到的其他问题,我知道这不是lftp
的错。但是,我想知道禁用restart position
更改是否会以某种方式修复那些损坏的文件(至少它适用于其他文件)。通过阅读手册,我可以看到这两个选项:
hftp:use-range (boolean)
when true, lftp will use Range header for transfer restart.
http:use-range (boolean)
when true, lftp will use Range header for transfer restart.
我不知道这是否与我想要实现的目标相关(强制lftp
始终完整下载数据,而无需重新启动位置),或者我想要的原则上是否可以实现。我会通过实际运行它们来尝试这些选项,但是当文件损坏并且重新下载相同的文件总是提供正确的版本时,我看不到任何可预测的模式。因此,任何帮助都值得赞赏!:)
不确定这是否是解决方案,但根据日志,我认为对我来说的问题是由get -c
命令引起的,所以我从镜像作业中删除了--continue
。