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 за это я тоже получаю ошибку. Кто-нибудь может помочь мне использовать подстановочные знаки для этого?

6 ответов

Вы можете пойти с включенными фильтрами и --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 так чувствителен к этому.

Это свет комментария @seamus: этот ответ объясняет использование файлов из и включения из.

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