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: этот ответ объясняет использование файлов из и включения из.