Unison не может синхронизировать конфигурацию Dropbox (файлы сокетов)

Я использую Unison для синхронизации моего дома на нескольких компьютерах, и я обращался ко всему, кроме этого.

Конфигурация Dropbox частично пропущена, и в результате Dropbox считает, что нет конфигурации и снова проходит мастер настройки.

Вот результат Unison, связанный с Dropbox:

Reconciling changes <-?-- dir .dropbox <---- dir .dropbox-dist <---- dir .dropbox-dist-new [BGN] Copying .dropbox from /home/.nfs/jorge.suarez/linux-home to /home/remoto/jorge.suarez [END] Copying .dropbox [BGN] Copying .dropbox-dist from /home/.nfs/jorge.suarez/linux-home to /home/remoto/jorge.suarez [END] Copying .dropbox-dist [BGN] Copying .dropbox-dist-new from /home/.nfs/jorge.suarez/linux-home to /home/remoto/jorge.suarez [END] Copying .dropbox-dist-new partially transferred: .dropbox 

Вот исходное содержимое каталога:

 $ ls -lah total 22M drwx------ 3 jorge.suarez users 3,9K 2013-01-25 21:39 . drwxr-xr-x 43 jorge.suarez users 3,9K 2013-01-25 21:40 .. srw------- 1 jorge.suarez users 0 2013-01-25 21:39 command_socket -rw------- 1 jorge.suarez users 3,0K 2013-01-25 21:39 config.db -rw------- 1 jorge.suarez users 20K 2013-01-25 21:39 config.dbx -rw------- 1 jorge.suarez users 66K 2013-01-25 21:39 deleted.dbx -rw------- 1 jorge.suarez users 4 2013-01-25 21:39 dropbox.pid -rw------- 1 jorge.suarez users 2,0M 2013-01-25 21:39 filecache.dbx -rw------- 1 jorge.suarez users 89 2013-01-25 21:39 host.db -rw------- 1 jorge.suarez users 221 2013-01-25 21:39 host.dbx -rw------- 1 jorge.suarez users 81 2013-01-25 21:39 hostkeys srw------- 1 jorge.suarez users 0 2013-01-25 21:39 iface_socket drwx------ 2 jorge.suarez users 3,9K 2013-01-25 21:39 l -rw------- 1 jorge.suarez users 13K 2013-01-25 21:39 photo.dbx -rw------- 1 jorge.suarez users 20M 2013-01-25 21:39 sigstore.dbx -rw------- 1 jorge.suarez users 232 2013-01-25 21:39 unlink.db 

И синхронизированный, как раз перед Dropbox появляется шанс на запуск:

 $ ls -lah total 22M drwx------ 3 jorge.suarez users 4,0K Xan 25 22:09 . drwx------ 43 jorge.suarez users 4,0K Xan 25 22:10 .. -rw------- 1 jorge.suarez users 3,0K Xan 25 22:09 config.db -rw------- 1 jorge.suarez users 20K Xan 25 22:09 config.dbx -rw------- 1 jorge.suarez users 66K Xan 25 22:09 deleted.dbx -rw------- 1 jorge.suarez users 4 Xan 25 22:09 dropbox.pid -rw------- 1 jorge.suarez users 2,0M Xan 25 22:09 filecache.dbx -rw------- 1 jorge.suarez users 89 Xan 25 22:09 host.db -rw------- 1 jorge.suarez users 221 Xan 25 22:09 host.dbx -rw------- 1 jorge.suarez users 81 Xan 25 22:09 hostkeys drwx------ 2 jorge.suarez users 4,0K Xan 25 22:09 l -rw------- 1 jorge.suarez users 13K Xan 25 22:09 photo.dbx -rw------- 1 jorge.suarez users 20M Xan 25 22:09 sigstore.dbx -rw------- 1 jorge.suarez users 232 Xan 25 22:09 unlink.db 

Кажется, что iface_socket и command_socket пропущены, потому что они являются файлами сокетов. Есть ли что-нибудь, что я могу сделать по этому поводу?

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

One Solution collect form web for “Unison не может синхронизировать конфигурацию Dropbox (файлы сокетов)”

Начиная с Unison 2.40 (последняя версия, когда я пишу) Unison не поддерживает файл, который не является обычным файлом, каталогом или символической ссылкой. Предыдущие версии прервали передачу при столкновении с специальными файлами; с 2.40 эти файлы игнорируются. В 2.40.65 вы не увидите имя проигнорированных файлов в первой синхронизации, но оно отображается в последующих синхронизациях. Таким образом, вы можете запустить Unison вручную один раз, а затем проанализировать его вывод для обнаружения специальных файлов.

Другие варианты – исправление Unison или поиск специальных файлов вручную и их копирование.

Одним из способов синхронизации этих файлов было бы сохранить их хранилище. Например, создайте параллельную иерархию, которая кодирует специальные файлы с обычными файлами, позволяет Unison синхронизировать это и декодировать параллельную иерархию после синхронизации. Перед запуском унисона, с каждой стороны:

 mkdir -p .pipes .sockets find . -type p -exec sh -c ' mkdir -p ".pipes/${0%/*}"; touch -r "$0" ".pipes/$0"; chmod -r "$0" ".pipes/$0" ' {} \; find . -type s -exec sh -c ' mkdir -p ".sockets/${0%/*}"; touch -r "$0" ".sockets/$0"; chmod -r "$0" ".sockets/$0" ' {} \; 

После запуска унисон:

 (cd .pipes && find -type f -exec sh -c ' [ -p "../$0" ] && exit; mkfifo "../$0"; touch -r "$0" "../$0"; chmod -r "$0" "../$0" ' {} \;) find -type p -exec '[ -e ".pipes/$0" ] || rm "$0"' {} \; (cd .sockets && find -type f -exec sh -c ' [ -S "../$0" ] && exit; python -c "import os, sys; os.mknod(sys.argv[1], 0140000)" "../$0"; touch -r "$0" "../$0"; chmod -r "$0" "../$0" ' {} \;) find -type s -exec '[ -e ".sockets/$0" ] || rm "$0"' {} \; 

(Предупреждение: непроверенный код. Предполагается использование инструментов GNU (включая любой встроенный Linux).)

Я думаю, что это сложнее, чем оправданно. Существует очень мало приложений, которые полагаются на именованный канал или сокет: большинство их создавайте по мере необходимости. Dropbox – это первый случай, о котором я когда-либо слышал. Поэтому я думаю, что я бы пошел на специальный подход: пропустите сокеты при синхронизации и создайте их для Dropbox как часть вашей новой процедуры создания учетной записи (вместе с созданием профиля Unison и тем, что вы делаете).

  • Обновление дистрибутива на основе Ubuntu без потери всего
  • Можно ли определить, является ли мое ядро ​​Linux обычным (то есть скомпилированным), а не дистрибусом?
  • Как запустить Unicorn с помощью systemd / systemctl?
  • Как безопасно предоставить не-root доступ к lib, чтобы аппаратное ускорение Catalyst могло функционировать?
  • Случайные части древнего оборудования, не работающего вместе (Mac G5, сетевой адаптер Sun)
  • Создание локального собственного веб-сервера тестирования
  • XBMCbuntu зависает с произвольными интервалами
  • live USB linux на macbook pro в середине 2012 года
  • sign_and_send_pubkey: сбой подписи: агент отказался от операции
  • Как создать новый файл и отредактировать его как root?
  • Мышь и клавиатура не работают в Ubuntu 14.04
  • Проблема с кодировкой символов при установке Linux?
  • Linux и Unix - лучшая ОС в мире.