Показать статистику
0 голосов
от (2.7тыс. баллов)

Я пытаюсь сделать резервную копию некоторых файлов на другом диске, используя rsync.

В качестве тестового примера я пробую следующую команду:

rsync -Rav --delete --stats /home/my_user/bin* "$dest"

Эта команда скопирует файлы и каталоги (с их содержимым), присутствующие в моем $HOME каталоге и имеющие такие имена, как ~/bin~/binb~/bin1~/bin2 и т. д., в место назначения.

Однако, когда я удаляю какие-либо файлы или каталоги, называемые ~/bin1 или ~/bin2, например, они также не удаляются в месте назначения. Единственное, что работает, это когда есть файл в каталоге скажем ~/bin2/file1 и этот файл удаляется, то этот файл также удаляется в месте назначения (но не в случае, когда каталог ~/bin2/удаляется вообще).

Очевидно, эта проблема создается оболочкой, расширяющейся /home/my_user/bin* до всех имен файлов и каталогов, начинающихся с bin в моем $HOME каталоге во время выполнения команды rsync. Итак, я попытался процитировать источник, например "/home/my_user/bin*", но в этом случае я получаю сообщение об ошибке:

rsync: [sender] link_stat "/home/my_user/bin*" failed: No such file or directory (2)

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

rsync version 3.2.3 protocol version 31

162 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Вы пробовали --delete-after вместо просто --delete?

Возможно вам следует использовать другую структуру, в которой у вас есть все только у одного родителя, ~/bin/1 ~/bin/2... 

Вы можете использовать --include--excludeкак:

rsync -Rav --delete \
  --include="/home/my_user/bin*" \
  --exclude="/home/my_user/*" \
/home/my_user/ "$dest"

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

от (2.7тыс. баллов)
0

Спасибо. В моем случае вариант --include должен быть таким: --include="/home/my_user/bin*"(без косой черты).

от (26.4тыс. баллов)
0

Да,потому что вам также нужны файлы, начинающиеся с bin

...