rsync не работает между NTFS / FAT и EXT

У меня есть музыка, которую я играю в своей машине, с USB-накопителя FAT32. Папка, в которую я помещаю песни, хранится на моем жестком диске EXT4. Я регулярно добавляю / удаляю / повторно помечаю песни и иногда хочу rsync внести изменения в карту памяти USB. Но по неизвестной причине (может быть, разрешения?) rsync копирует все файлы каждый раз, а не только измененные. Я звоню rsync как:

rsync -vrlptgD source dest

Как я могу заставить его работать так, как я хочу (т. Е. Знать, когда файл не был изменен, и не копировать его)?

13
задан 25 May 2018 в 18:55

5 ответов

Ответ Хавьера Риверы работает, но rsync проверяет и сравнивает все контрольные суммы файлов довольно долго. Я обнаружил, что использование следующей опции работает лучше для меня:

rsync -rtv --modify-window=1 /source /dest

Переключатель --modify-window=1 допускает отклонение ± 1 с на отметках времени. Если эта опция включена, сравнение временных меток будет более мягким и позволит взглянуть на незначительные различия во времени между файловыми системами NTFS / FAT и Unix.

Источник (источник): http://www.kai-hildebrandt.de/tutorials/rsync.html

PS: Учтите, что летнее время приведет к полной передаче файла дважды год. См. здесь для получения дополнительной информации и возможных решений.

0
ответ дан 25 May 2018 в 18:55

Метки времени в FAT32 слишком отличаются от меток unix, чтобы полагаться на них, чтобы проверять изменения файлов, также следует использовать ключ -c, он заставит rsync сравнить все файлы, чтобы обнаружить изменения, а не полагаться на метки времени. Это будет работать, но медленнее.

Наконец, в вашей команде есть несколько параметров, которые не могут работать с файловыми системами FAT32.

  • -l сохранит ссылки, FAT32 не имеет понятия ссылок
  • -p попытается сохранить разрешение, опять же, нет никаких разрешений для FAT32
  • -t попытается сохранить модификацию временные метки, есть только одна временная метка на FAT32
  • -g попытается сохранить владение группой, опять же не поддерживается FAT32
  • -D попытается сохранить специальные файлы и устройства, теперь вы получите здесь.

Как комментарии htorque, недействительные опции не повредят вам, они просто ничего не сделают. Но вы должны добавить ключ -c.

Это:

rsync -vrc source dest

должно работать (по крайней мере, это работает на моем компьютере).

0
ответ дан 25 May 2018 в 18:55

Это слишком много флагов (-vrlptgD), которые вы используете. Помните, что rsync - это утилита для Linux, которая не работает эффективно с Fat32 и NTFS.

Вам придется охотиться за трюками, чтобы иметь возможность его использовать.

Попробуйте:

rsync -rvh --size-only --progress --delete /path/to/ext4/ /path/to/fat32/

Подробнее здесь

0
ответ дан 25 May 2018 в 18:55

Вам также следует избегать использования популярной опции -a. Моя рекомендация по FAT32:

 rsync -vrc --delete --progress --no-p source  destination

- no-p: нет разрешения

- delete: удалить несопоставленные файлы и папку в месте назначения (если вы действительно этого хотите)

[ 114] - прогресс: показать прогресс во время передачи. Это хорошо для больших файлов.

0
ответ дан 25 May 2018 в 18:55

У меня была похожая проблема под OSX, и ответ Glutanamate не помог. Некоторые файлы отличаются на час; это может быть потому, что я склонен пересекать часовые пояса относительно часто. Другие файлы отключены на день или даже месяц. Я не уверен, почему это так. Контрольная сумма в некоторых файлах с сильно различающимися временными метками показывает, что они действительно идентичны.

В любом случае, похоже, что опция --size-only, которая говорит rsync игнорировать метки времени, будет работать для моих целей. -c / --checksum (как упомянуто Хавьером) также работает, но занимает немного больше времени. Я рассчитал время, и мне потребовалось около минуты, чтобы сравнить контрольные суммы для ГБ или около того в подкаталоге, с которым я работаю. Конечно, скорость, с которой это происходит, будет зависеть от самого медленного диска в системе; в моем случае это SD-карта в моем телефоне. Однако это было после того, как я уже делал некоторые манипуляции с файлами (включая контрольные суммы), поэтому многие из файлов, возможно, уже были скопированы в кэш-память ОЗУ.

0
ответ дан 25 May 2018 в 18:55

Другие вопросы по тегам:

Похожие вопросы: