Ошибка синхронизации зеркала Debian
Я использую инструмент синхронизации зеркала Debian 'ftpsync' в системе FreeBSD 8.2. Я немного изменил сценарий только для адаптации к системе 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 вручную, оба файла исчезнут, и проблема будет решена.
Есть ли у вас какие-либо идеи о том, как избавиться от этой проблемы, кроме повторного запуска сценария вручную? Благодарю.
2 ответа
Вы можете обернуть ftpsync в шеллскрипт так:
#!/bin/sh
ftpsync
while [ -f /pool/main/Archive-Update-In-Progress ]; do
sleep 600
ftpsync
done
Это будет обновлять репо до тех пор, пока не будет выполнено обновление архива на другой стороне.
Насколько я знаю: ты не можешь! Только если вы знаете, как выглядят эти файлы, вы сможете исключить их из вызова rsync.
Кажется, что эти файлы являются временными и исчезают при передаче файла.