Я запускаю этот 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)
Первая проблема находится в Вашем расширении фигурной скобки {}
, который сделан оболочкой и 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 ....