21

Я установил Dropbox 2.0.0 через командную строку на своем домашнем сервере (Ubuntu Server 12.04), чтобы использовать его для автоматических резервных копий вне сайта, но я не могу изменить каталог, который синхронизирует демон Dropbox.

Я пробовал следующее:

Официальные документы говорят использовать настольное приложение, которое не применимо в моей ситуации. Однако я установил настольное приложение на свой настольный компьютер и изменил расположение папки по умолчанию, но не могу найти, где это изменение хранится в каталоге ~/ .dropbox/, поэтому я могу сделать то же самое изменение на сервере.

На этой странице (и некоторых других) для выполнения этой работы рекомендуется использовать скрипт Python . Глядя на сценарий, он открывает базу данных SQLite с именем ~/.dropbox/dropbox.db, которой не существует при моей установке Dropbox, что наводит меня на мысль, что сценарий устарел.

Эта ветка форума предлагает вручную вставить нужную строку в базу данных config.db, что я и сделал, но это не имело никакого значения. Я проверил тот же файл базы данных на своем настольном компьютере, и у него нет ключа dropbox_path, поэтому я предполагаю, что информация в этой теме также устарела для версии 2.0.

Я попытался запустить мастер настройки графического интерфейса Dropbox через SSH с переадресацией X11, как предложено в одном из ответов, но двоичный файл должен обнаружить отсутствие локальной установки X11, и вместо этого он запускает демон командной строки, который не предоставляет средств для изменить опцию мне нужно.

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

Как изменить каталог Dropbox на безголовом сервере GNU/Linux?

Обновление: я бросил Dropbox и начал использовать Копирование. Их инструменты и поддержка Linux намного превосходят Dropbox. Я оставляю этот вопрос здесь на случай, если кто-нибудь когда-нибудь сможет ответить на него.

8 ответов8

10

Вы можете просто создать символическую ссылку на ~/Dropbox

ln -s <dir-that-you-want-to-sync> ~/Dropbox
6

Итак, вот мой трюк:

Сначала я удаляю все связанные папки, созданные в моей домашней папке

rm -rf ~/.dropbox-dist

Я также удаляю папку Dropbox по умолчанию:

rm -rf ~/Dropbox

Затем я переустановил демон dropbox, определив HOME env var следующим образом:

HOME=/data/other_folder dropbox.py start -i

Затем запустите демон dropboxd вручную, запустив:

HOME=/data/other_folder /data/other_folder/.dropbox-dist/dropboxd

Тогда подожди до конца.

3

Это настоящий недостаток приложения для Linux. В более старых версиях вы могли изменить файл настроек. В самой последней версии кажется, что единственным решением является изменение переменной $HOME перед запуском Dropbox.

Допустим, мы хотим, чтобы папка Dropbox появлялась в /foo/bar .

  1. Установите Dropbox в /foo/bar/.dropbox-dist .
  2. Загрузите скрипт Python для управления Dropbox со страницы Linux Dropbox .
  3. В этом сценарии ниже import os добавьте строку: os.environ["HOME"] = "/foo/bar"
  4. Dropbox, управляемый / запущенный через скрипт управления, теперь думает /foo/bar/ это ваш /home/username/ .

Это означает, что при использовании управляющего скрипта теперь он ищет /foo/bar/.dropbox-dist/dropbox для запуска демона. Файлы конфигурации будут записаны в /foo/bar/.dropbox/ . Папка /foo/bar/Dropbox/ будет использоваться для синхронизации файлов.

0

Это может быть то, что вы ищете:

Установите Dropbox на сервере Linux без графического интерфейса

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

0

Если у вас есть ssh доступ к рассматриваемому компьютеру, вы можете запустить настольное приложение dropbox на автономном сервере и отобразить его на локальном компьютере:

  1. Подключитесь к серверу, используя переадресацию порта X11

    ssh -Y user@server
    
  2. Теперь запустите приложение Dropbox, оно должно появиться на вашем локальном экране.

    ~/.dropbox-dist/dropbox
    

    Это может занять некоторое время в зависимости от вашего сетевого подключения. Не сдавайтесь, если не получите сообщение об ошибке. Я могу подтвердить, что это сработало, когда я подключился из своей коробки Debian к удаленному серверу Ubuntu, на котором не было X-сервера. Через несколько секунд на моей локальной панели задач появился второй значок Dropbox, и я смог оттуда получить доступ к / изменить параметры удаленной установки Dropbox.

Теперь некоторые детали могут измениться, так как я использую Dropbox 1.6.18, но основы должны быть такими же. В случае, если имя или местоположение приложения изменились, вот как я узнал, какую команду мне нужно выполнить, чтобы запустить настольное приложение Dropbox:

  1. Получить список запущенных процессов

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Запустите приложение Dropbox (щелкните правой кнопкой мыши значок Dropbox на панели задач и выберите «Настройки ...») и повторите

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Сравните файлы, чтобы найти соответствующую команду

    diff drop.txt no_drop.txt
    
0

Я была такая же проблема. Я хотел использовать Dropbox для синхронизации большого вторичного жесткого диска на сервере Ubuntu. Я сделал символическую ссылку со вторичного жесткого диска на свой домашний каталог перед установкой dropbox

ln -s /mnt/disks/sdb /home/marc/Dropbox

Устанавливайте Dropbox только после выполнения вышеуказанного шага.

Таким образом, Dropbox в домашнем каталоге - это символическая ссылка, а настоящая папка - там, где вы когда-либо находились.

0

У TechRepublic есть страница - Настройка Dropbox на сервере Linux без графического интерфейса - которая претендует на решение этой проблемы:

… Для управления Dropbox и его настройки для [Linux, Windows и OS X] предусмотрены инструменты с графическим интерфейсом.  Но что произойдет, если вы захотите связать компьютер с Linux без графического интерфейса?  Можно, немного поработав, заставить Dropbox работать без графического интерфейса, что позволяет синхронизировать файлы с серверами, которые работают без заголовка или в которых учетная запись пользователя может не войти в систему все время.

    ︙

Начать:

# mkdir -p /tmp/dropbox
# cd /tmp/dropbox
# curl -OL http://dl.getdropbox.com/u/6995/dbmakefakelib.py
# curl -OL http://dl.dropbox.com/u/637552/Dropbox/dbreadconfig.py
# curl -L -o dropbox.tar.gz http://www.dropbox.com/download?plat=lnx.x86_64

Используйте plat=lnx.x86 если вы хотите 32-битный клиент.  Это создает временный каталог для наших установочных файлов Dropbox и загружает два необходимых сценария python: dbmakefakelib.py который создает поддельные копии-заглушки библиотек GUI для запуска демона dropboxd, и dbreadconfig.py который отображает информацию о конфигурации Dropbox.

Определите, какой пользователь будет использовать клиент Dropbox; это может быть выделенный пользователь или обычный пользователь.  В системе также может быть запущено несколько экземпляров Dropbox, поэтому вы можете настроить его для нескольких пользователей (хотя каждый пользователь может запустить только один экземпляр Dropbox).  Для этого примера мы создадим специальный пользовательский «dropbox», который будет запускать этот клиент Dropbox.

# su - dropbox
$ cd ~/
$ tar xvzf /tmp/dropbox/dropbox.tar.gz
$ cd .dropbox-dist
$ python /tmp/dropbox/dbmakefakelib.py
dropboxd ran for 15 seconds without quitting - success?

Для сценария dbmakefakelib.py требуется gcc, поэтому в системе должен быть установлен gcc.  Это создает поддельные копии-заглушки библиотек GUI, так что запускается dropboxd.  В конце вы можете увидеть, что он запустил dropboxd; нажмите Ctrl+C, чтобы выйти из сценария.  dropboxd все еще должен работать в фоновом режиме:

$ ps ax | grep dropboxd
24001 pts/0    S      0:00 sh -c { /home/dropbox/.dropbox-dist/dropboxd; } 2>&1

Теперь, когда Dropbox запущен, нам нужно связать его с существующей учетной записью:

$ cd ~/
$ python /tmp/dropbox/dbreadconfig.py
host_id = 0bd9c5a15458fbc31f85e892faa7dac4
schema_version = 6

Возьмите host_id сверху.  Войдите в веб-интерфейс Dropbox, и после входа в систему вручную перейдите по следующему URL-адресу:

https://www.dropbox.com/cli_link?host_id= [HOST_ID]

Замените [HOST_ID] на host_id, который выводит dbreadconfig.py.  Когда вы это сделаете, сайт Dropbox сообщит вам, что вы успешно связали новый компьютер.  Перейдите в настройки своей учетной записи, а затем «Мои компьютеры», и вы увидите новый компьютер в списке.

Если вы не убили процесс dropboxd, который запустил dbmakefakelib.py, вы обнаружите, что он уже загружает файлы из Dropbox в ~ /Dropbox / в фоновом режиме.

Чтобы запустить демон dropboxd в фоновом режиме при загрузке, вы можете добавить следующее в ваш /etc/rc.d/rc.local сценарий инициализации:

daemon —user dropbox /bin/sh -c "/home/dropbox/.dropbox-dist/dropboxd&"

Это запустит dropboxd в фоновом режиме с правами пользователя, для которого он установлен (в данном случае это «dropbox»).  Если вы хотите сделать общесистемный initscript, посетите вики Dropbox, где есть несколько примеров, которые вы можете использовать, включая initscripts для Fedora / Red Hat и для Debian / Ubuntu.  Здесь также есть примеры того, как настроить Dropbox, работающий под daemontools DJB.

0

Я просто столкнулся с той же проблемой и смог ее решить

  1. Отключение учетной записи через веб-интерфейс Dropbox:

    https://blogs.dropbox.com/dropbox/2014/10/how-to-unlink-a-device-from-your-dropbox/

  2. Удаление каталога ~/.dropbox для пользователя, запускающего dropboxd .

    rm -r ~/.dropbox
    
  3. Возможно, вам также потребуется очистить каталог ~/Dropbox .

Первый шаг может быть необязательным, но я уже сделал это перед удалением ~/.dropbox , что в конечном итоге позволило мне снова его настроить.

Не забудьте cd - диск в каталог , который вы хотите , чтобы быть вашим Dropbox корневой папки.  Тогда это работало хорошо для меня.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .