подавить предупреждение 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
  • rsync только выбранные подкаталоги
  • Rsync - измененный список изменений
  • Резервное копирование в Linux с возобновлением поддерживает только последнюю версию
  • rsync от Mac ext hd до VPS работает, но не VPS для Mac
  • Как настроить сервер и клиент rsync?
  • Как rsync файлы между двумя пультами?
  • rsync и xfr # 1, to-chk = 0/1, что они означают?
  • 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

    Сетевые проблемы после обновления Ubuntu

    Можно ли имитировать щелчок мышью на удаленной машине через SSH?

    Egrep первые несколько символов в каждой строке?

    Как настроить тестовую среду SELinux в Debian?

    с переименованием GNU Linux

    Непрочитанная строка соответствует регулярному выражению, состоящему только из читаемых символов

    Нет звука на динамиках, наушники в порядке

    Можно ли переместить загрузочные файлы?

    UTF-8 работает в gnome-терминале только после выбора уже выбранной кодировки

    есть ли инструмент / демон, который автоматически заполняет / etc / ethers в фоновом режиме, чтобы иметь надлежащий wake on lan hostname: Mac-база данных при необходимости?

    Преобразование FFMPEG в FLV-конверсию

    Как запустить программу несколько раз с разными аргументами, используя цикл в сценарии bash?

    команда OR для определения состояния соединения vpn

    Отладка Open Dylan Debian build

    bash + регулярное выражение + подтверждение имени машины

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