подавить предупреждение rsync: некоторые файлы исчезли, прежде чем они могут быть переданы

Я получаю множество предупреждений при резервном копировании моих загрузочных файлов Postfix и Courier, таких как:

file has vanished: /var/kunden/mail/username/name@mymail.de/tmp/courier.lock 

Как я могу подавить эти предупреждения от rsync при запуске из Cron /usr/bin/rsnapshot hourly ?

Могу ли я как-то исключить эти каналы?

 /var/kunden/mail/*/*/tmp/ 

папка tmp может быть более глубокой, например:

 file has vanished: /var/kunden/mail/username/name@mymail.de/.Presse/tmp/1353871473.M716135P32214_imapuid_36.test.de file has vanished: /var/kunden/mail/username/name@mymail.de/.Presse/tmp/courier.lock 

5 Solutions collect form web for “подавить предупреждение rsync: некоторые файлы исчезли, прежде чем они могут быть переданы”

Вы можете использовать переключатель исключений rsync ( --exclude ):

 $ rsync -avz --exclude '**/tmp/' source/ destination/ 

Указанный таким образом --exclude '**/tmp/' будет игнорировать любой путь, который включает строку /tmp/ . Вы также можете предоставить шаблоны этим аргументам.

пример

 $ rsync -avz --exclude '/path/to/*/tmp/' source/ destination/ 

Исключит по путям формы: /path/to/*/tmp/ .

Причина в том, что эти файлы существовали, а rsync строит список файлов для передачи, но они удаляются перед передачей.

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

Чтобы игнорировать это предупреждение, вы можете использовать опцию -ignore-missing-args как указано выше, или использовать параметр -ignore-missing-args rsync, он заставляет rsync игнорировать исчезнувшие файлы: --ignore-missing-args ignore missing source args without error возможно, это помогает.

Ошибка означает, что rsync больше не может найти файлы, которые были созданы при создании списка для передачи. Эти ошибки с исчезнувшими файлами происходят, когда изначально было обнаружено, что файл присутствует, а затем больше не существует. В некоторых случаях это также происходит, когда исходные файлы повреждены или имеют недопустимые символы в имени (так рекомендуется fsck ).

В основном это предупреждение, а не ошибка, поэтому не о чем беспокоиться, поскольку состояние каждого файла назначения отражает состояние, в котором находятся соответствующие исходные файлы во время прогона.

Если это вызывает проблему из-за того, что значение exit не равно нулю, это можно решить с помощью следующего сценария оболочки ( source ):

 #!/bin/bash (rsync "$@"; if [ $? == 24 ]; then exit 0; else exit $?; fi) 2>&1 | grep -v 'vanished' 

или с помощью следующего сценария обхода ( источник ):

 #!/bin/sh OUT=`/usr/bin/snapback2 2>&1` RET=$? if [ "$RET" != "23" -a "$RET" != "0" -a "$RET" != 24 ]; then echo "$OUT" exit $RET fi 

который в основном существует с теми же кодами ошибок, что и rsync, если rsync терпит неудачу.

Это дополнительно обсуждается в: Ошибка 3653 – Уменьшить необходимость в предупреждении об исчезнувших файлах

Или просто (с современным bash ):

 #!/bin/bash /usr/bin/rsync "$@" 2> >(grep -Ev '(file has |rsync warning: some files )vanished') ret=$? ((ret==24)) && exit 0 || exit $ret 

К сожалению, в отличие от того, что описано в решении SWdream, --ignore-missing-args не влияет на исчезнувшие файлы. Он просто игнорирует исходные аргументы, которые не существуют.

См. man rsync :

  --ignore-missing-args When rsync is first processing the explicitly requested source files (eg command-line arguments or --files-from entries), it is normally an error if the file cannot be found. This option suppresses that error, and does not try to transfer the file. This does not affect subsequent vanished-file errors if a file was initially found to be present and later is no longer there. 

«Официальный» способ игнорировать исчезнувший файл – использовать этот скрипт из официального репозитория rsync: https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/rsync-no- исчезли; = ГОЛОВКА ро

который очень похож на то, что сказал @kenorb и @ gilles-quenot.

  • Странное поведение rsync
  • Как использовать rsync с удаленным удаленным хостом
  • зарезервировать дисковое пространство перед копированием файлов
  • Поведение Rsync с измененными файлами
  • Как dd или cp весь диск на удаленном компьютере Debian на локальную машину?
  • Понимание того, почему такое несоответствие в передаче сети?
  • Rsync за исключением .svn папок и их содержимого?
  • Проблемы с разрешением при резервном копировании системы с помощью rsync
  • Как копировать только временные метки, или «Я должен был использовать cp -p»
  • s3cmd: как использовать exclude-from с файлом списка исключенных каталогов
  • Как реализовать схему вращения с помощью rsync
  • Linux и Unix - лучшая ОС в мире.