Как очистить после неудачной rsync?

12

Я убил местный процесс "rsync -ah".
Это оставило ненужные файлы как ".abc.vmdk.zxivMN" в целевом каталоге.
Нежелательные файлы не удаляются при последовательных запусках «rsync -ah».

Детали:
я запустил diff для обеих папок, которые я синхронизировал, и он сообщил: «Только в / mnt / archive1 / documents / general: .abc.vmdk.zxivMN»

Каков наилучший способ очистки временных файлов rsync?

user27465
источник

Ответы:

12

Скажите rsyncудалить файлы не на исходнике, с помощью --delete-duringили --delete-after. Будьте осторожны и используйте эту опцию, только если у вас нет законных файлов на цели, которых нет в источнике.

См man rsync.

Конечно, вы всегда можете вручную удалить файлы, которые вы обнаружили с diff...

Свен
источник
Это плохо, когда вы делаете копию, а не двигаетесь.
Шридхар Сарнобат
6

Я делаю это используя

find -type f -iname ".*.*.??????" -ls

для теста и

find -type f -iname ".*.*.??????" -delete

для очистки

Андрес Р. Гар
источник
-1

Я обнаружил, что следующая команда работает для меня при попытке удалить временные файлы, оставленные rsync после неудачной передачи.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

Он находит все «скрытые» файлы (файлы, начинающиеся с символа «.») И передает их команде «rm» для их удаления.

Очевидная известная проблема, связанная с приведенным выше кодом, состоит в том, что если ваше содержимое содержит скрытые файлы, то эта команда также удалит их.

arrayown
источник
-2

Я ищу лучшее решение, но единственное, что я могу придумать, - это переместить все emptyфайлы, начинающиеся с a .и имеющие еще две точки, в папку для мусора (использование rmнемного рискованно):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Ни в коем случае не надежно.

Шридхар Сарнобат
источник
Проголосовал без объяснения причин
Шридхар Сарнобат