Назад | Перейти на главную страницу

rsync --files-from или --include-from

Я попробовал команду:

 rsync -v --include-from=/path/to/list.lst /home/user /path/to/backup

list.lst содержит например

.gnupg/

.pki/

.gnome2/keyrings/

.mozilla/firefox/*.default/bookmarkbackups/

.mozilla/firefox/*.default/bookmarks.html

.mozilla/firefox/*.default/*.db

.mozilla/firefox/*.default/*.sqlite

и я получаю ошибку во всех строках:

ошибка: нет такого файла или каталога

Когда я использую --files-from для этого я тоже получаю ошибку. Может ли кто-нибудь помочь мне использовать для этого подстановочные знаки?

Вы можете использовать фильтры включения и --include-from: Комплекс включает / исключает с помощью rsync

Или вы можете использовать команду поиска:

cd
rsync -v --files-from <(find gnupg/ .pki/ .gnome2/keyrings/ \
  .mozilla/firefox/*.default/bookmarkbackups/ \
  .mozilla/firefox/*.default/bookmarks.html .mozilla/firefox/*.default/*.db \
  .mozilla/firefox/*.default/*.sqlite) \
 ~ /path/to/backup

Я думаю, вам может понадобиться добавить --recursive вариант и использование --files-from.

Я думаю имя файла в твоем list.lst должен начинаться с + или - лайк:

- *.o
- foo/
+ *.exe
+ 123/456/*

Одно из возможных решений описано на следующей веб-странице. Похоже, что эта строка ошибки вводит в заблуждение, проверьте ошибку "кода", которая появляется позже.

http://kenfallon.com/rsync-mkstemp-failed-no-such-file-or-directory-2/

https://access.redhat.com/solutions/60592

У меня аналогичная проблема с "(код 23)", но я до сих пор не знаю, почему и как это исправить. Если я помещаю файлы для передачи (foo * .xml) в командной строке, а не в --files-from файл, он работает. Я начинаю думать что --files-from не любит шаблоны со звездочками, вопросительными знаками и т. д. Возможно, мне нужно использовать --include-from, проблема в том, что я нашел --include-from сбивает с толку включать и исключать файлы.

0 Success 1 Syntax or usage error 2 Protocol incompatibility 3 Errors selecting input/output files, dirs 4 Requested action not supported: an attempt was made to manipulate 64-bit files on a platform that cannot support them; or an option was specified that is supported by the client and not by the server. 5 Error starting client-server protocol 6 Daemon unable to append to log-file 10 Error in socket I/O 11 Error in file I/O 12 Error in rsync protocol data stream 13 Errors with program diagnostics 14 Error in IPC code 20 Received SIGUSR1 or SIGINT 21 Some error returned by waitpid() 22 Error allocating core memory buffers 23 Partial transfer due to error 24 Partial transfer due to vanished source files 25 The --max-delete limit stopped deletions 30 Timeout in data send/receive 35 Timeout waiting for daemon connection

Убедитесь, что строки в /path/to/list.lst в конце строки не должно быть пробелов. Я не знаю почему rsync так чувствителен к этому.