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 и тем, что вы делаете).

  • / etc / machine-info отсутствует
  • losetup / dev / loop0 исчезает через некоторое время
  • Как использовать файл casper-rw для сохранения
  • Указатель мыши оставляет след
  • Использование Ubuntu Server в качестве DHCP и DNS-сервера для пересылки URL-адресов на IP-адреса
  • Одновременное редактирование нескольких файлов с помощью vim / gedit
  • Могу ли я сменить комбинацию клавиш на клавишу Windows?
  • беспроводная проблема
  • Сценарий оболочки, в котором выполняется mono_service.exe в качестве фоновой задачи
  • копия tmux xclip больше не работает
  • Как установить GRUB в другую папку, чем / EFI / ubuntu?
  • Linux и Unix - лучшая ОС в мире.