rsync не может исключать каталоги

Я запускаю этот cmd для резервного копирования моих папок:

$ rsync -av --exclude {/mnt/dati/Film/, /mnt/dati/Scout/} --delete /mnt/dati/ /media/cirelli/HD1TB/backup/dati
sending incremental file list

И ответ rsync:

rsync: link_stat "/mnt/dati/Scout/}" failed: No such file or directory (2)

, но каталог «Scout» существует! Не могу понять, в чем я ошибаюсь. Даже фильм копируется, даже если нет сообщения об ошибке! Что не так в моем исполнении rsync?

Большое спасибо, ребята

(о, я читал man https://download.samba.org/pub/rsync/rsync .html и примеры http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/ но все же найти какой-либо способ решить ..!)

Я также пытался (это прерывается CTRL + C):

cirelli@asus:~$ rsync -av --exclude /mnt/dati/Film/ --exclude /mnt/dati/.Trash-1000/ --delete /mnt/dati/ /media/cirelli/HD1TB/backup/dati
sending incremental file list
deleting Documenti/script/
rsync: readlink_stat("/media/cirelli/HD1TB/backup/dati/Documenti/RPi/.2015-05-05-raspbian-wheezy.zip.2sXers") failed: Input/output error (5)
deleting Documenti/RPi/KODI/
deleting Documenti/RPi/berryboot-20130908.zip
deleting Documenti/RPi/2015-05-05-raspbian-wheezy.zip
IO error encountered -- skipping file deletion
.Trash-1000/files/
.Trash-1000/files/2015-05-05-raspbian-wheezy.zip
.Trash-1000/files/berryboot-20130908.zip
.Trash-1000/files/settembre 12.img
^Crsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(632) [sender=3.1.1]
rsync: [sender] write error: Broken pipe (32)
1
задан 29 April 2016 в 17:31

1 ответ

Первая проблема находится в Вашем расширении фигурной скобки {}, который сделан оболочкой и rsync просто использует результат.

Вы сделали расширение фигурной скобки не путем представления пространства между именами каталогов, так к rsync --exclude опция стала:

--exclude {/mnt/dati/Film/,

таким образом, rsync исключит файл (или каталог) {/mnt/dati/Film/, (возможный существует не такой), и /mnt/dati/Scout/} стал исходным файлом для копирования для rsync и там никакой такой файл/каталог, следовательно сообщение об ошибке.

Для решения этой проблемы расширения фигурной скобки необходимо удалить пространство между именами каталогов:

{/mnt/dati/Film/,/mnt/dati/Scout/} ....

Или лучше просто используйте общую часть однажды:

/mnt/dati/{Film/,Scout/} ....

Но это не решает проблему с rsync потому что --exclude берет шаблон как:

--exclude='foo*bar'

или

--exclude 'foo*bar'

так в этом случае также, каталог /mnt/dati/Scout/ будет все еще взят в качестве исходного каталога для копирования с.

Для решения этой проблемы также, можно использовать несколько --exclude:

rsync -av --exclude=/mnt/dati/Film/ --exclude=/mnt/dati/Scout/ ....

Или сохраните шаблоны в файле и использовании:

rsync -av --exclude-from=/file/with/patterns ....
3
ответ дан 30 April 2016 в 03:31

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

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