Я подозреваю, что, используя только Unison, ответ на ваш вопрос - нет . В общем, трудно сказать Unison синхронизировать или не синхронизировать файлы / каталоги со свойством, которое нельзя указать с помощью какого-либо сопоставления с шаблоном в их имени, например, с каталогами, которые являются монтируемыми или жесткими ссылками в вашем случае.
Не совсем корректно говорить « по умолчанию unison использует rsync для передачи ». Unison использует тот же базовый алгоритм / протокол, что и rsync, но использует свою собственную реализацию; фактический rsync
исполняемый файл не вызывается, поэтому вы не можете обратиться к функциям rsync
исполняемого файла и не сможете решить свою проблему таким образом. Хотя, если rsync
это возможно, то я думаю, что Unison мог бы сделать это, если бы кто-то написал эту функцию.
Поскольку, как вы указали, Unison не понимает жестких ссылок, я думаю, вам просто не повезло. Вы можете использовать внешнюю программу для умного игнорирования монтирования bind. Вы можете использовать findmnt, чтобы вывести список каталогов, которые являются подключаемыми, и затем вставить строку ignore = Path /path/to/bind/mount
в свой профиль Unison для каждого подключения.
Кроме того, поскольку похоже, что вы собираетесь делать это вручную с помощью сценария или чего-то еще, вы должны знать об инструментах inotify .