Я использую rsync (версия 3.1.0 на centos) для выполнения некоторых задач резервного копирования. Я разрабатываю программное обеспечение, которое отслеживает мои процессы rsync, чтобы подогнать конфигурацию резервного копирования под мою бизнес-логику.
Мое программное обеспечение запускает некоторые процессы rsync и анализирует вывод rsync для отправки уведомлений.
Я сталкиваюсь с чем-то странным.
Мой целевой диск заполнен. Мое программное обеспечение запускает резервное копирование rsync на этом диске с помощью следующей команды:
rsync -irlpt --no-perms --stats /src /media/dst/
/media/dst — внешний жесткий диск USB3, смонтированный в fuseblck (NTFS).
/src — это папка, содержащая 50 Гбайт изображений, фильмов и несколько текстовых файлов.
Поскольку этот диск заполнен, я бы хотел, чтобы rsync быстро завершил работу, возвращая ошибку.
Но процесс rsync занимает очень много времени. (Я остановил его вручную через 10 часов). Когда я его остановил, я могу прочитать много трассировки, например, такую:
rsync: mkstemp "/media/dst/.20160518-130315-underwaterposition-VI_GAPS.pos.DIksdT" failed: No space left on device (28)
Для меня это сообщение нормально, так как на устройстве не осталось места.
Итак, мои вопросы:
Почему rsync не останавливается сразу после того, как обнаруживает, что на целевом устройстве не осталось свободного места?
Есть ли способ заставить это поведение произойти?