我在 FreeBSD 8.2 系统上运行 Debian 镜像同步工具“ftpsync”。我稍微修改了脚本以适应 FreeBSD 系统(例如,bash 的路径)。我遵循了http://www.debian.org/mirror/ftpmirror设置镜像站点。
该脚本被放入 cron 作业中,并将每天运行。有时,我会在日志文件中看到以下错误消息,如下所示:
file has vanished: "/pool/main/g/gcc-snapshot/.gcc-snapshot_20120625-1_s390x.deb.1cqlSA" (in debian)
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1518) [generator=3.0.9]
如果出现此错误,镜像存储库中将出现两个以“ Archive-Update-in-Progress-
”和“ Archive-Update-Required
”开头的文件。似乎在从上游同步时更新了一些文件。如果我再次手动运行“ftpsync”脚本,两个文件都会消失,问题将得到解决。
除了手动再次运行脚本之外,您还有什么办法可以解决这个问题吗?谢谢。
答案1
你可以将 ftpsync 包装在 shellscript 中,如下所示:
#!/bin/sh
ftpsync
while [ -f /pool/main/Archive-Update-In-Progress ]; do
sleep 600
ftpsync
done
这将更新 repo 直到另一端的 Archive-Update 完成。
答案2
据我所知:你不能!只有知道这些文件是什么样子的,你才能将它们从 rsync 调用中排除。
看起来这些文件是临时文件,在文件传输过程中会消失。