Вопрос или проблема
КОНТЕКСТ: rsync с очень большим количеством файлов для синхронизации
ЧТО ПРОИСХОДИТ: rsync сталкивается с ошибками, но просто продолжает…
ЧТО Я ДЕЛАЮ: rsync -Pav path1 path2
ПРОБЛЕМА: я загружен в режиме восстановления, и на диске восстановления не осталось места…
ВОПРОСЫ: есть ли опция, чтобы rsync останавливался при первой ошибке, чтобы я мог увидеть, что происходит?
Я ПРОВЕРИЛ man-страницу rsync, но не нашел никакой опции, которая бы предполагала остановку при первой ошибке
ПРОБЛЕМА: я загружен в режиме восстановления, и на диске восстановления не осталось места…
ВОПРОСЫ: есть ли опция, чтобы rsync останавливался при первой ошибке, чтобы я мог увидеть, что происходит?
К сожалению, похоже, что rsync в данный момент не поддерживает это. На GitHub есть об этом задача: #71 rsync не завершает работу, когда целевой диск заполнен. Там, Уэйн Дэвисон (сопровождающий rsync) пишет:
Поскольку эта проблема является внутренней в работе rsync и есть обходное решение, я закрываю эту ошибку. В будущей версии rsync 4.0, надеюсь, этой проблемы не будет.
Также в задаче упоминается использование --msgs2stderr
как обходное решение, вы можете попробовать это, это должно по крайней мере заставить rsync завершаться быстрее.
Вы можете запустить rsync с -q, что будет показывать только ошибки вместо каждого передаваемого файла.
Еще один вариант, если большая часть файлов передается, но вы получаете несколько ошибок, вы можете подождать, пока rsync завершится, а затем запустить rsync снова. При повторном запуске rsync попытается синхронизировать только те файлы, которые ранее не удалось передать. Это даст вам аккуратный список файлов, по которым произошли ошибки.
Затем вы можете попытаться разрешить эти ошибки и снова запустить rsync, каждый раз он будет пытаться передать только те файлы, которые еще не были успешно переданы.
Ответ или решение
Конечно, позвольте объяснить подробнее.
Контекст и Проблема:
Вы используете rsync
для синхронизации большого количества файлов, и при этом возникает проблема: если rsync
сталкивается с ошибками, он продолжает свою работу, что может привести к нежелательным последствиям, особенно если ваш резервный диск переполнен. Вы используете команду rsync -Pav path1 path2
в режиме восстановления, но возникает вопрос: можно ли заставить rsync
остановиться при первой ошибке для выяснения причин?
Краткий Ответ:
К сожалению, текущая версия rsync
не поддерживает возможность остановки при первой ошибке. Это связано со структурой работы утилиты. Однако, существует несколько подходов, которые могут помочь:
-
Использование флага
--msgs2stderr
: Этот флаг направляет все сообщения об ошибках в стандартный поток ошибок, что может облегчить мониторинг и ускорить выход из ситуации с каждой ошибкой. -
Запуск с
-q
(тихий режим): Использование флага-q
позволяет не выводить подробную информацию о каждом переданном файле, выводя только сообщения об ошибках. Это может сократить шум в терминале и сфокусироваться на возникших проблемах. -
Повторный запуск
rsync
: Если большинство файлов передаются успешно, но только несколько дают сбой, выполнитеrsync
повторно после завершения первого запуска. Во втором и последующих запускахrsync
сконцентрируется только на тех файлах, которые не были переданы успешно ранее. Это позволит быстрее выявить и устранить конкретные ошибки.
Дополнительные Рекомендации:
-
Мониторьте Дисковое Пространство: Поскольку существует проблема с недостаточным пространством на резервном диске, целесообразно регулярно мониторить дисковое пространство и пытаться очистить его от ненужных файлов.
-
Обновляйте
rsync
: Следите за обновлениямиrsync
, так как в будущих версиях возможно появление функционала, который устранит данный недостаток.
Следуя этим рекомендациям, вы сможете повысить эффективность и надёжность процесса синхронизации с rsync
. Если остаются нерешённые вопросы или специфические запросы, рекомендую обратиться к более персонализированной технической поддержке или консультации.