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


22

Я встановив 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. Я залишаю це питання тут на випадок, якщо хтось колись зможе відповісти на нього.


Незважаючи на мою відповідь, якщо це ваш домашній сервер, чому б ви просто не підключити до нього екран, внести зміни та зняти екран знову?
тердон

@terdon, Немає X11, щоб запустити настільний додаток Dropbox.
xx

Ага, гаразд, досить справедливо, спробуйте мою відповідь тоді, це має спрацювати. На моєму домашньому безголовому сервері насправді є X, він просто не запускається за замовчуванням і екран не додається, ось чому я запитав. Я перевірив свою відповідь на справжньому безголовому сервері, без X11, і він працював. Для переадресації X11 використовується локальний X-сервер, і він не потребує запуску на віддаленій машині.
тердон

Будь-які кращі варіанти тепер, коли копію вже немає? "Копія була припинена 1 травня 2016 року. Як колишній користувач Copy, ми думаємо, що вам сподобається Trove." - спробував це?
Xen2050

Відповіді:


11

Ви можете просто створити посилання на ~/Dropbox

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

3
Питання задає: "Як я можу змінити каталог Dropbox ...", посилання - це не відповідь.
xx

4
Але він піклується про причину, з якої потрібно змінити каталог Dropbox, пор. Проблема XY
Aditya

Насправді. Я думаю, що це не вийде, я пам’ятаю, що виникли проблеми із посиланнями, що не працюють з Dropbox.
тердон

3
Симлінінг справді працює, і це те, що я використовував перед тим, як задати це питання, але це неприємність. Я прийшов сюди, щоб з’ясувати правильний спосіб внести зміни. Я оновлю питання, щоб це відобразити.
xx

Це не працює, якщо вам потрібно перемістити папку Dropbox із домашнього каталогу, наприклад, якщо потрібно, щоб інші користувачі мали доступ до вмісту папки Dropbox. Рішення ikandar нижче працювало для мене для цієї ситуації.
jesse.r

6

Тож ось моя хитрість:

Спочатку я видаляю всю пов’язану папку, створену в моїй домашній папці

rm -rf ~/.dropbox-dist

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

rm -rf ~/Dropbox

Тоді я перевстановив демон демонстраційного меню, задавши HOME env var таким чином:

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

Далі запустіть демон вручну з запуску:

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

Потім зачекайте його до кінця.


1
На мій досвід, вам також потрібно видалити ~ / .dropbox, інакше крок 4 поскаржиться на те, що комп'ютер вже підключений, і не дозволить вам перейти в / data / other_folder.
jesse.r

Дякую, це працювало для мене. Застереження: 1. Пам’ятайте, що ваші дані будуть жити в /data/other_folder/Dropbox2. Він створить деякі інші точкові файли всередині other_folder, наприклад, коли він запустить ваш браузер для початкового входу. Ви можете спробувати очистити їх пізніше. 3. Ви повинні використовувати HOME=...кожен раз, коли ви запускаєте папку "dropbox". (Я спробував перемістити .dropbox*папки до свого справжнього будинку після того, як все працювало, але це просто порушило налаштування.)
joeytwiddle

4

Це справжній недолік програми Linux. У старих версіях ви можете змінити файл налаштувань. В останній версії з'являється єдине рішення - змінити $HOMEзмінну до запуску Dropbox.

Скажімо, ми хочемо, щоб папка "Dropbox" відображалася в /foo/bar.

  1. Встановіть Dropbox на /foo/bar/.dropbox-dist.
  2. Завантажте сценарій Python для управління Dropbox зі сторінки Dropbox Linux .
  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/Папка буде використовуватися для синхронізації файлів.


Відмінна порада! Допомагав багато. З'єднайте це з тим, ln -s ~/dropbox.py /usr/local/bin/dropboxщоб менше набирати текст
Кріс Маккайнт

Це чудово працює для мене, хоча, коли я намагаюся зупинити Dropbox, я отримую повідомлення Dropbox isn't responding!. Схоже, це все-таки зупиняється. Трохи дивно.
ohruunuruus

Цікаво, що створення сценарію в /usr/local/binцих наборах HOMEперед виконанням сценарію python (а не зміна самого сценарію за допомогою os.environ["HOME"]), здається, це очистило.
ohruunuruus

0

Якщо у вас є sshдоступ до відповідної машини, можливо, ви зможете запустити dropboxнастільний додаток на безголовому сервері та відобразити його на вашій локальній машині:

  1. Підключіться до сервера за допомогою переадресації порту X11

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

    ~/.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
    

1
Немає програми GUI для переадресації, лише dropboxd, демон Dropbox.
xx

Ви спробували topі diffтрюк, який я запропонував? Запустіть додаток на локальній машині, щось потрібно запустити, тому є команда. Якщо в новій версії єдиною командою є демон, то запустіть демон, він все одно з’явиться на панелі завдань.
тердон

На моїй настільній машині запуск ~ / dropbox-dist / dropbox запускає майстра налаштування графічного інтерфейсу. На сервері, через ssh-з'єднання з переадресацією X11, ~ / dropbox-dist / dropbox запускає демон, який вказує мені перейти до певної URL-адреси, щоб "зв’язати цю машину". І сервер, і робочий стіл використовують той самий архів для встановлення файлів, що випадають. В архіві єдині два виконувані файли - dropbox, і dropboxd, пізніший - це лише сценарій оболонки, щоб встановити LD_LIBRARY_PATH та запустити перший.
xx

Хм, мій віддалений сервер вже був пов'язаний. Якщо я добре пам’ятаю, мені довелося запустити графічний браузер ( lynxне міг цього зробити) на віддаленій машині (завжди використовуючи переадресацію X11) і зв’язати машину за допомогою цього браузера. Спробуйте зробити це, а потім запустити ~/dropbox-dist/dropboxзнову. Принаймні, ми підтвердили, що це працює, демон, який ви згадуєте, є графічним і відображається на вашому локальному екрані? Тому, як тільки ви зв’яжете ваш сервер зі своїм обліковим записом, ви зможете налаштувати його, як описано в моїй відповіді.
тердон

Це було пов'язано, я просто видалив конфігурацію з ~ / .dropbox, щоб почати з нуля. "демон, який ви згадуєте, графічний і відображається на вашому локальному екрані?" Ні, це не графічно при запуску на сервері. Потрібно виявити відсутність X11 і перейти в режим лише командного рядка, незважаючи на те, що переадресація X11 не вмикається.
xx

0

Це може бути те, що ви шукаєте:

Налаштуйте Dropbox на сервері Linux без GUI

Прошу вибачення за те, що просто підкинув URL-адресу замість опису процедур тут. Я на роботі і зараз не можу детальніше розробити. Пізніше я можу розширити відповідь, я просто не хочу втрачати цю цінну URL-адресу разом із своїм рішенням.


0

TechRepublic має сторінку - Налаштувати Dropbox на сервері Linux без GUI - який стверджує, що вирішує цю проблему:

… Існують інструменти графічного інтерфейсу, призначені для управління 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 в системі. Це створює підроблені копії заглушок бібліотек графічного інтерфейсу, щоб запустився dropboxd. Наприкінці ви бачите, що він запустив dropboxd; натисніть Ctrl+, Cщоб вийти із сценарію. dropboxd все одно повинен працювати у фоновому режимі:

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

Тепер, коли працює папка, нам потрібно пов’язати її з існуючим обліковим записом:

$ 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 сценарію init:

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

Це запустить dropboxd у фоновому режимі з привілеями користувача, для якого він встановлений (у цьому випадку користувач - "dropbox"). Якщо ви хочете зробити загальносистемний initscript, відвідайте вікі Dropbox, де є кілька прикладів, які ви можете використовувати, включаючи initscripts для Fedora / Red Hat та Debian / Ubuntu. У ньому також є приклади, як налаштувати Dropbox, що працює під daemontools DJB.


Дякуємо, перейдіть до MestreLion ⁠⁠ за публікацію цього посилання .
Скотт

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. Тоді це добре працювало для мене.


Привіт, ласкаво просимо до SuperUser. Чи можете ви детальніше пояснити свою відповідь? Зокрема, дайте детальнішу інформацію про те, що потрібно зробити користувачеві?
Сервіс-менеджер

0

У мене було те саме питання. Я хотів використовувати папку для синхронізації великого вторинного жорсткого диска на сервері ubuntu. Що я зробив, я створив симпосилання з вторинного жорсткого диска до мого домашнього каталогу перед встановленням dropbox

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

Встановіть Dropbox лише після виконання вищевказаного кроку.

Таким чином, Dropbox у домашньому каталозі є символьним посиланням, а реальна папка - це те, куди ви колись ви посилалися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.