Я получаю массу предупреждений при резервном копировании файлов сервера 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 -a --exclude '/var/kunden/mail/*/*/tmp/' --exclude '/var/kunden/mail/*/*/*/tmp/' /var/kunden/ $SERVER/var_kunden/
?/tmp/
в них включены, как я написал. Если вы хотите быть более точным, тогда вы можете указать это так, как написали.--exclude='/tmp/'
исключает только каталог, который вызываетсяtmp
в корне копии. Чтобы исключить все подкаталоги, вызываемые вtmp
любом месте, используйте--exclude='**/tmp/'
.К сожалению, в отличие от того, что описано в решении SWdream,
--ignore-missing-args
не влияет на исчезнувшие файлы. Он будет просто игнорировать исходные аргументы, которые не существуют.Смотрите
man rsync
:«Официальный» способ игнорирования исчезнувшего файла - использовать этот скрипт из официального репозитория rsync: https://git.samba.org/?p=rsync.git;a=blob_plain;f=support/rsync-no- Исчезнувшая; ПП = ГОЛОВКА
что очень похоже на то, что сказали @kenorb и @ gilles-quenot.
источник
Причина в том, что эти файлы существовали, пока rsync создает список файлов для передачи, но перед удалением они удаляются.
Это предупреждающий массаж, а не ошибка. Тем не менее, вы должны попытаться выяснить, почему эти файлы были удалены, это может быть важно.
Чтобы игнорировать это предупреждение, вы можете использовать опцию --exclude, как указано выше, или использовать
-ignore-missing-args
опцию rsync, она заставляет rsync игнорировать исчезнувшие файлы:--ignore-missing-args ignore missing source args without error
это может помочь.источник
Ошибка означает, что
rsync
больше не удается найти файлы, которые существовали при создании списка для передачи. Эти ошибки исчезнувшего файла происходят, когда файл был первоначально найден присутствующим, а позже его больше нет. В некоторых случаях это также происходит, когда исходные файлы повреждены или имеют недопустимые символы в имени (fsck
рекомендуется).По сути, это предупреждение, а не ошибка, поэтому не о чем беспокоиться, поскольку состояние каждого файла назначения отражает состояние соответствующих исходных файлов во время выполнения.
Если это вызывает проблему из-за того, что значение выхода не равно нулю, это можно решить с помощью следующего сценария-оболочки ( источник ):
или с помощью следующего сценария обхода ( источник ):
который в основном существует с теми же кодами ошибок, что и rsync, в случае сбоя rsync.
Это дополнительно обсуждается в: Ошибка 3653 - Уменьшить необходимость предупреждения «исчезнувшие файлы»
источник
Или просто (с современным bash ):
источник
vanished
?Моим ответом может быть особый вариант использования, но я чувствовал, что это стоит отметить, поэтому люди не теряют данные, если попадают под этот случай.
Я получал это сообщение для нескольких файлов, выполняя обычное резервное копирование дисков через rsync.
Я выполнил Системную проверку на диске, и оказалось, что есть проблемы с диском (распределение / повреждение файла и т. Д.) И рекомендовал резервное копирование + восстановление + переформатирование.
Поэтому, прежде чем вы выйдете из режима подавления или полностью проигнорируете сообщение, было бы разумно просто выполнить проверку работоспособности вашего диска, чтобы быть в безопасности.
источник
tmp
каталогах.Попробуйте смонтировать ваш резервный диск с
nosuid,nodev,nofail,x-gvfs-show
параметрами.Не уверен, какую систему вы используете, но я считаю, что это связано с параметрами монтирования вашего диска. В Linux это происходит, если я установил параметры монтирования в
User Session Default
. Он разрешается, когда я отключаю его, и rsync завершает работу без ошибок.источник
Используйте этот параметр:
поместить список в файл. В файле exclude.ini напишите что-то вроде:
Где:
Помните, что если файловая система зависит от регистра, вам, возможно, придется учитывать это.
источник