헤드리스 GNU / Linux 서버에서 Dropbox 디렉토리를 어떻게 변경합니까? ) 는 작업을

오프 사이트 자동 백업에 사용하기 위해 홈 서버 (Ubuntu Server 12.04)에서 명령 줄통해 Dropbox 2.0.0을 설치 했지만 Dropbox 데몬이 동기화 된 디렉토리를 변경할 수 없습니다.

나는 다음을 시도했다.

공식 문서 는 데스크탑 응용 프로그램을 사용한다고 말하는데, 제 상황에는 해당되지 않습니다. 그러나 데스크톱 컴퓨터에 데스크톱 앱을 설치하고 기본 폴더 위치를 변경했지만 ~ / .dropbox / 디렉토리에서이 변경 사항이 저장된 위치를 찾을 수 없으므로 서버에서 동일한 변경을 수행 할 수 있습니다.

이 페이지 (및 다른 여러 페이지 ) 는 작업을 수행하기 위해 Python 스크립트 를 권장 합니다 . 스크립트를 살펴보면 ~ / .dropbox / dropbox.db라는 SQLite 데이터베이스가 열리고 Dropbox 설치에 존재하지 않으므로 스크립트가 오래되었다고 생각합니다.

이 포럼 스레드 는 config.db 데이터베이스에 필요한 행을 수동으로 삽입하도록 제안하지만 아무런 차이가 없습니다. 데스크톱 컴퓨터에서 동일한 데이터베이스 파일을 확인했으며 dropbox_path 키가 없으므로 해당 스레드의 정보가 버전 2.0에 대한 정보가 아닌 것으로 가정합니다.

답변 중 하나에서 제안한 것처럼 X11 전달을 사용하여 SSH를 통해 Dropbox GUI 구성 마법사를 시작하려고했지만 바이너리가 로컬 X11 설치가 없음을 감지하고 대신 명령 줄 데몬을 시작하므로 아무런 의미가 없습니다. 필요한 옵션을 변경하십시오.

답변으로 제안 된대로 현재 심볼릭 링크를 사용하고 있지만 이것은 kludge 입니다. 올바른 변경 방법을 알고 싶습니다.

헤드리스 GNU / Linux 서버에서 Dropbox 디렉토리를 어떻게 변경합니까?

업데이트 : Dropbox를 버리고 Copy 사용하기 시작했습니다 . Linux 도구 및 지원은 Dropbox보다 훨씬 우수합니다. 언젠가 누군가가 대답 할 수 있도록 여기에이 질문을 남깁니다.



답변

에 대한 심볼릭 링크를 만들 수 있습니다 ~/Dropbox

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


답변

여기 내 트릭이 있습니다.

먼저 홈 폴더에 생성 된 모든 관련 폴더를 제거합니다

rm -rf ~/.dropbox-dist

Dropbox 기본 폴더도 제거합니다.

rm -rf ~/Dropbox

그런 다음 HOME env var를 다음과 같이 정의하여 dropbox 데몬을 다시 설치했습니다.

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

다음으로 다음을 실행하여 dropboxd 데몬을 수동으로 시작하십시오.

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

그런 다음 끝날 때까지 기다리십시오.


답변

이것은 Linux 응용 프로그램의 실제 단점입니다. 이전 버전에서는 설정 파일을 수정할 수있었습니다. 최신 버전에서는 $HOMEDropbox가 시작되기 전에 변수 를 변경하는 것이 유일한 해결책 인 것 같습니다 .

‘Dropbox’폴더가에 나타나길 원한다고하자 /foo/bar.

  1. 에 Dropbox를 설치하십시오 /foo/bar/.dropbox-dist.
  2. Linux Dropbox 페이지 에서 Python 스크립트를 다운로드하여 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/폴더는 파일 동기화에 사용됩니다.


답변

당신이있는 경우 ssh해당 컴퓨터에 대한 액세스 권한을, 당신은 시작할 수 있습니다 dropbox헤드리스 서버에서 데스크톱 응용 프로그램을하고 로컬 컴퓨터에 표시가 :

  1. X11 포트 포워딩을 사용하여 서버에 연결

    ssh -Y user@server
    
  2. 이제 dropbox 앱을 실행하면 로컬 화면에 나타납니다.

    ~/.dropbox-dist/dropbox
    

    네트워크 연결에 따라 시간이 걸릴 수 있습니다. 오류 메시지가 나타나지 않으면 포기하지 마십시오. 데비안 박스에서 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
    

답변

이것은 당신이 찾고있는 것일 수 있습니다 :

GUI가없는 Linux 서버에서 Dropbox 설정

여기에 절차를 설명하는 대신 단순히 URL을 던져서 죄송합니다. 나는 일하고 있고 지금 더 정교 해 질 수 없다. 나중에 답변을 확장 할 수 있습니다. 귀하의 솔루션 으로이 귀중한 URL을 잃고 싶지 않습니다.


답변

TechRepublic에는 GUI가없는 Linux 서버에 Dropbox 설정 페이지가 있으며이 문제를 해결한다고 주장합니다.

… Dropbox를 관리하고 [Linux, Windows 및 OS X] 용으로 설정하기위한 GUI 도구가 제공됩니다. 그러나 GUI가없는 Linux 컴퓨터를 연결하려면 어떻게됩니까? 약간의 작업으로 Dropbox를 GUI없이 실행할 수있어 헤드리스 또는 사용자 계정이 항상 기록되지 않는 서버와 파일을 동기화 할 수 있습니다.

    ︙

시작하려면 :

# 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.x8632 비트 클라이언트를 원하는 경우 사용하십시오 . 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가 시작되도록 GUI 라이브러리의 가짜 스텁 사본을 작성합니다. 마지막으로 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]dbreadconfig.py 출력과 그 HOST_ID. 이렇게하면 Dropbox 사이트에서 새 컴퓨터를 성공적으로 연결했음을 알려줍니다. 계정 설정으로 이동 한 다음 내 컴퓨터로 이동하면 새 컴퓨터가 나열됩니다.

dbmakefakelib.py가 시작한 dropboxd 프로세스를 종료하지 않은 경우, 이미 Dropbox에서 ~ / Dropbox /로 파일을 다운로드하고 있음을 알 수 있습니다.

부팅시 백그라운드에서 dropboxd 데몬을 시작하려면 /etc/rc.d/rc.local init 스크립트에 다음을 추가 할 수 있습니다.

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

이것은 설치된 사용자의 권한으로 백그라운드에서 드롭 박스 시작됩니다 (이 경우 사용자는 “드롭 박스”). 시스템 전체의 initscript를 수행하려면, Fedora / Red Hat 및 Debian / Ubuntu의 initscript를 포함하여 사용할 수있는 몇 가지 예가있는 Dropbox Wiki를 방문하십시오. 또한 DJB의 daemontools에서 실행되는 Dropbox를 설정하는 방법에 대한 예제도 있습니다.


답변

방금 같은 문제가 발생하여 해결할 수있었습니다.

  1. Dropbox 웹 UI를 통해 계정 연결 해제 :

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

  2. ~/.dropbox실행중인 사용자 의 디렉토리를 제거합니다 dropboxd.

    rm -r ~/.dropbox
    
  3. ~/Dropbox디렉토리 를 정리해야 할 수도 있습니다.

첫 번째 단계는 필요하지 않을 수도 있지만을 제거하기 전에 이미 수행 했으므로 ~/.dropbox궁극적으로 다시 설정할 수 있습니다.

cdDropbox 루트 폴더가 될 디렉토리를 기억하십시오 . 그런 다음 나에게 잘 작동했습니다.