Rsync не откажется от записи на удаленном удаленном диске

У меня были проблемы с внешним жестким диском, находящимся на точке монтирования . Это не тема этого вопроса, а справочная информация.

Проблема связана с rsync. Кажется, он не распознает, когда пытается синхронизировать с неизменным назначением.

Видите ли, когда этот диск неправильно установлен, все, что осталось, это папка с точкой монтирования, которую я сделал неизменной.

Вместо того, чтобы rsync понимал, что он не может передать эту точку монтирования, он переходит к передаче нескольких концертов в этот удаленный пункт назначения. Вместо того, чтобы терпеть неудачу, он смотрит на ситуацию так, как будто «эй, у этого адресата нет никаких файлов, которые мне сказали синхронизировать здесь, поэтому я лучше перемещаю все файлы, как будто это была новая передача в первый раз».

Я бы хотел, чтобы rsync выходил из строя, но вместо этого он пытается записать 100 000 файлов в эту точку монтирования, не получив ни одного файла.

2 Solutions collect form web for “Rsync не откажется от записи на удаленном удаленном диске”

Я не знаю, есть ли у вас свобода решать свой путь назначения, но если у вас есть это, то вы можете использовать следующий трюк.

Создайте каталог xyz в папке точки монтирования и измените разрешения с помощью chmod 000 xyz . Затем смонтируйте диск на точке монтирования и сделайте каталог xyz оставляя права доступа нормальными. Настройте rsync качестве адресата /your-mount-point/xyz/ и если диск не установлен, rsync выйдет с ошибкой:

 rsync: change_dir#1 "/your-mount-point/xyz/" failed: Permission denied (13) rsync error: errors selecting input/output files, dirs (code 3) at main.c(562) [Receiver=3.0.9] rsync: connection unexpectedly closed (9 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9] 

Если привод установлен, rsync будет работать нормально.

Как rsync должен знать, что диск не установлен? Точки монтирования – это просто папки, подобные любым другим, поэтому rsync делает именно то, что вы ему сказали, нет ошибки, потому что вы дали ему каталог, который он может видеть, поэтому он пытается записать на него.

Обходным путем было бы сначала убедиться, что ваш диск установлен, а затем запустить rsync . В этом примере я использую метку моего внешнего жесткого диска (Iomega_HDD) соответственно:

 mount | grep -q Iomega_HDD && rsync ... 

Команда, приведенная выше, будет запускать вашу команду rsync только при установке диска.

  • Как автоматически принудительно использовать umount на накопителе USB, который уже удален?
  • Невозможно выполнить umount / mnt
  • Интерпретация результатов команд
  • Как разрешить, когда IP-адрес сервера NFS изменяется
  • Безопасное удаление каталога только в том случае, если оно не является точкой монтирования
  • Umount сетевые диски с системойd перед выключением
  • Командная строка эквивалентна «Безопасно удалить диск»?
  • Как размонтировать ранее chroot'd файловую систему?
  • Почему usb-drive не отображается с помощью `lsblk` после того, как он был удален из Thunar?
  • Установка Medora 25 Medialess
  • Как монтировать контейнер Truecrypt с тайм-аутом из командной строки?
  • Linux и Unix - лучшая ОС в мире.