подавить предупреждение 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 

  • rsync репозиторий OpenIndiana на локальном сервере
  • rsync меняет права на мои каталоги
  • Как rsync через ssh, когда имена каталогов имеют пробелы
  • Интерактивный ssh ​​работает, но не rsync или scp, на OSX
  • rsync исключить на основе размера файла?
  • Самый эффективный способ резервного копирования / синхронизации больших каталогов через SSH
  • проблема с rsync. забыли конечную точку и не могут найти beackupfiles сейчас
  • rsync зависает, если я не дефрагментирую файловую систему ext4
  • 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.

    Interesting Posts

    скрипты не будут выполняться

    unix – случайно переместил все под root в / old – Solaris 10

    CentOS 7 – Использование systemctl для запуска виртуальной машины без головы

    Использует ли grep кеш для ускорения поиска?

    Понимание сообщения «serial8250: слишком много работы для irq4»

    Как перечислить все файлы, которые не были созданы в четверг

    Помощь с командой сортировки (числовой)

    Экранный сеанс завершается при сбое программы

    Как перезапустить сервер ngnix на CentOS

    Как bash интерпретирует равный оператор без окружающих пространств в условном?

    Как установить с Live CD с Linux, который не поддерживает установку?

    Виртуальная консоль приостанавливает воспроизведение видео и аудио в KDE

    «Команда не найдена», когда функция sudo'ing от ~ / .zshrc

    Сценарий Python работает с терминалом, но не работает в планировщике, для записи на внешний диск

    пытаясь установить пакет chef-client через локальный репозиторий yum

    Linux и Unix - лучшая ОС в мире.