У меня есть каталог со многими подкаталогами и несколькими миллионами файлов. Общий размер около 15 ГБ. У меня есть короткое окно (желательно около 30 секунд) для отражения изменений в этом каталоге во второй идентичный каталог на другом диске. Диски SSD.
Я пробовал различные варианты tar и rsync, но попал на «cp -ru», потому что он может копировать новые и измененные файлы в течение отведенного времени. Первый cp занимает, может быть, 15 минут; но в будущем "cp -ru" займет от 20 до 40 секунд. Другие варианты, которые я пробовал, были намного медленнее (занимали много минут).
Моя проблема в том, что я получаю «лишние» файлы. Файлы, которые могли кратковременно существовать в источнике, всегда оказывались в месте назначения; даже после того, как они были удалены из источника. Есть ли способ изменить "cp -ru", чтобы исключить файлы назначения, которых больше нет в исходном коде? Или это слишком сильно замедлит его?
Или, может быть, вторичная операция может каким-то образом сканировать источник «только для чтения» и удалять файлы в месте назначения? Эта операция может занять больше времени; как у меня есть около 1 часа времени между резервными копиями. Я просто не могу на самом деле копировать файлы в этот период, потому что они находятся на работающем сервере (файлы изменяются).
Я готов попробовать другие варианты, кроме cp; но он должен уметь обрабатывать резервные копии миллионов файлов в течение 30 секунд.
Я использую Ubuntu Server 14.04.3 LTS.