Я синхронизирую главный и подчиненный серверы с помощью rsync, но недавно на моем исходном жестком диске закончилось свободное место, поэтому я скопировал (собственное копирование с помощью cp) исходные файлы на новый жесткий диск большой емкости. Но после замены исходного жесткого диска мой подчиненный сервер начал синхронизировать целые файлы (он предполагал, что все файлы новые!)
Есть ли другой способ скопировать исходные файлы на новый жесткий диск?
решение1
Это происходит из-за того, что при копировании файлов метка времени была изменена. Вы можете сохранить атрибуты файлов, включая timestmap, используя -p
опцию. man cp
Подробнее см.
решение2
это из-за временных меток, которые rsync использует для проверки наличия каких-либо изменений — cp по умолчанию не сохраняет их, поэтому теперь rsync придется проверять контрольную сумму содержимого каждого файла, прежде чем он сможет решить, что содержимое не изменилось, а изменились только метаданные.
решение3
Я бы выбрал другой вариант cp
.
rsync
который, кажется, вы уже используете. Я бы использовал флаг архива.tar
в конвейере.ssh
При необходимости его можно передавать между серверами с помощью .cpio
который я использую редко, но должен обрабатывать это в одном процессе, в отличие отtar
решения.