Получил странную проблему. У нас есть каталог с сотнями огромных лог-файлов, и мне нужно перенести их на новый сервер.

Сначала я сделал: rsync -zavh /foo/bar/logs 10.10.10.10:/

Сработало хорошо, заняла вечность. Сейчас через 2 дня пытаюсь обновить. Я знаю, что есть только 20 новых файлов. Поэтому сначала я делаю rsync --dry-run -zavh /foo/bar/logs 10.10.10.10:/. Он говорит, что отправляет добавочный список файлов, но затем пытается снова скопировать ВЕСЬ каталог с новыми 20 файлами.

Я проверил, и старые файлы имеют ту же дату и размер.

Почему rsync не просто передает 20 или около того файлов, которые являются более новыми?

0
Kusalananda 12 Сен 2020 в 22:16
Какая файловая система 10.10.10.10:/
 – 
roaima
12 Сен 2020 в 18:37
Источник — ext4 (RHEL 6.10), а назначение — xfs (RHEL 7.8). Тем не менее, это единственный каталог, который дает мне такое поведение. Другие каталоги (тот же источник/назначение) синхронизируются постепенно без проблем.
 – 
Andre Gelinas
12 Сен 2020 в 18:41
Пожалуйста, добавьте флаг -i к вашему запуску и добавьте часть вывода к вашему вопросу. Он покажет причину, по которой файл выбран для копирования.
 – 
BowlOfRed
13 Сен 2020 в 06:26
Спасибо за предложение. Пришел после переключения, но я буду иметь в виду, если снова наткнусь на эту проблему.
 – 
Andre Gelinas
13 Сен 2020 в 16:13

1 ответ

У вас отсутствует завершающая косая черта в исходном каталоге.

Я ожидаю, что при первом запуске это создаст /logs в месте назначения, как и ожидалось. Однако в следующий раз, когда вы запустите его, он будет (начал) помещать исходный каталог logs в существующий каталог /logs, создавая /logs/logs.

Решение здесь состоит в том, чтобы поместить косую черту в конце исходного каталога и полностью указать цель.

rsync -zavh /foo/bar/logs/ 10.10.10.10:/logs/
1
roaima 12 Сен 2020 в 21:49
Спасибо за ваш ответ, но с косой чертой или без нее он дает мне тот же список (пробный запуск), включая старые неизмененные файлы.
 – 
Andre Gelinas
12 Сен 2020 в 22:20
Правильный путь назначения? Владелец/группа? Показывает ли stat одинаковое время в источнике и месте назначения?
 – 
roaima
12 Сен 2020 в 22:44
Еще раз спасибо. Тот же размер, некоторые блоки имеют небольшие отличия (202280 вместо 202288). В основном такое же время изменения (изменение: 2018-06-20 20:30:20.000000000 -0400 вместо изменения: 2018-06-20 20:30:20.672219155 -0400). Я имею в виду, что есть разница в долях секунд ... этого будет достаточно? Они были созданы rsync при первом запуске, верно?
 – 
Andre Gelinas
12 Сен 2020 в 23:11
Согласно справочной странице, rsync использует для сравнения только целые секунды (по умолчанию), так что все должно быть в порядке. Не могли бы вы объяснить, что вы имеете в виду о различиях в блоках, пожалуйста?
 – 
roaima
12 Сен 2020 в 23:50
Хорошо сообщает статистика: «Размер: 103565566 блоков: 202288 блоков ввода-вывода: 4096 обычных файлов» в источнике и: «Размер: 103565566 блоков: 202280 блоков ввода-вывода: 4096 обычных файлов» в месте назначения. Что странно, но, может быть, другой тип файловой системы и размер файла?
 – 
Andre Gelinas
13 Сен 2020 в 01:37