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


22

오프 사이트 자동 백업에 사용하기 위해 홈 서버 (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보다 훨씬 우수합니다. 언젠가 누군가가 대답 할 수 있도록 여기에이 질문을 남깁니다.


내 대답에도 불구하고 이것이 홈 서버 인 경우 화면을 연결하고 변경 한 다음 화면을 다시 가져 가면 안됩니까?
terdon

@terdon, Dropbox 데스크톱 앱을 실행할 X11이 없습니다.
xx

아, 알았어, 충분히 공평 해, 그럼 내 대답을 시도 해봐. 내 홈 헤드리스 서버에는 실제로 X가 있으며 기본적으로 시작되지 않고 화면이 연결되어 있지 않으므로 내가 요청한 것입니다. 나는 실제 헤드리스 X11리스 서버에서 내 대답을 테스트했지만 제대로 작동했습니다. X11 전달은 로컬 X 서버를 사용하므로 원격 시스템에서 서버를 실행할 필요가 없습니다.
terdon

이제 복사가 사라진 더 나은 옵션이 있습니까? "복사는 2016 년 5 월 1 일에 중단되었습니다. 이전의 복사 사용자는 Trove를 좋아할 것입니다." -해봤 어?
Xen2050

답변:


11

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

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

3
질문은 "Dropbox 디렉토리를 어떻게 변경할 수 있습니까?"라고 묻습니다. 심볼릭 링크는 답이 아닙니다.
xx

4
그러나 Dropbox 디렉토리를 변경하려는 이유 는 cf. XY 문제
Aditya

사실은. 이것이 작동하지 않는다고 생각합니다. Dropbox에서 작동하지 않는 심볼릭 링크에 문제가 있음을 기억합니다.
terdon

3
Symlinking은 작동하지만이 질문을하기 전에 내가 사용했던 것이지만 Kludge입니다. 나는 올바른 변경 방법을 찾기 위해 여기에 왔습니다. 이를 반영하여 질문을 업데이트하겠습니다.
xx

Dropbox 폴더를 홈 디렉토리 밖으로 이동해야하는 경우 (예 : 다른 사용자가 Dropbox 폴더의 내용에 액세스 할 수 있도록하려면)이 기능이 작동하지 않습니다. 아래의 ikandar 솔루션은이 상황에서 저에게 효과적이었습니다.
jesse.r

6

여기 내 트릭이 있습니다.

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

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

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


1
내 경험에 따르면 ~ / .dropbox를 제거해야합니다. 그렇지 않으면 4 단계에서 이미 연결된 컴퓨터에 대해 불평하고 / data / other_folder 내에서 진행할 수 없습니다.
jesse.r

고마워, 이것은 나를 위해 일했다. 주의 사항 : 1. 데이터가 /data/other_folder/Dropbox2에 있다는 것을 기억하십시오. other_folder예를 들어 초기 로그인을 위해 브라우저를 시작할 때와 같은 다른 도트 파일이 생성됩니다 . 나중에 정리를 시도 할 수 있습니다. 3. HOME=...보관 용 계정을 시작할 때마다 사용해야합니다 . ( .dropbox*모든 것이 작동 한 후 폴더를 실제 집으로
옮기려고했지만

4

이것은 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/폴더는 파일 동기화에 사용됩니다.


훌륭한 팁! 많은 도움이되었습니다. ln -s ~/dropbox.py /usr/local/bin/dropbox적은 타이핑 을 위해 페어링하십시오 !
크리스 맥나이트

dropbox를 중지하려고 할 때라는 메시지가 표시되지만 이것은 나에게 효과적 Dropbox isn't responding!입니다. 그래도 멈추지 않는 것 같습니다. 조금 이상합니다.
ohruunuruus

흥미롭게도 python 스크립트를 실행하기 전에 /usr/local/bin해당 세트 에서 스크립트를 작성하면 HOME(스크립트 자체를 수정하지 않고 os.environ["HOME"])이 정리 한 것 같습니다.
ohruunuruus

0

당신이있는 경우 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
    

1
Dropbox 데몬 만 dropboxd로 전달할 GUI 앱이 없습니다.
xx

당신은 시도 했 topdiff내가 제안 트릭? 로컬 컴퓨터에서 앱을 시작하면 무언가를 시작해야하므로 명령이 있습니다. 새 버전에서 유일한 명령이 데몬 인 경우 데몬을 시작하면 작업 표시 줄에 계속 나타납니다.
terdon

내 데스크탑 컴퓨터에서 ~ / dropbox-dist / dropbox를 실행하면 GUI 구성 마법사가 시작됩니다. 서버에서 X11 포워딩을 사용하는 ssh 연결을 통해 ~ / dropbox-dist / dropbox는 데몬을 시작하여 특정 컴퓨터로 연결하여 '이 컴퓨터 연결'을 지시합니다. 서버와 데스크탑 모두 정확히 동일한 아카이브를 사용하여 보관 용 파일을 설치합니다. 아카이브에서 두 개의 실행 파일 만 dropbox와 dropboxd이며, 나중에는 LD_LIBRARY_PATH를 설정하고 이전 파일을 시작하는 쉘 스크립트 일뿐입니다.
xx

흠, 내 원격 서버 연결되었습니다. 올바르게 기억한다면 lynx원격 컴퓨터 에서 그래픽 브라우저를 시작하고 (항상 X11 전달을 사용하여) 해당 브라우저를 사용하여 컴퓨터를 연결해야했습니다. 그렇게 한 다음 ~/dropbox-dist/dropbox다시 시작 하십시오. 적어도 우리는 그것이 작동한다는 것을 확인했습니다. 언급 한 데몬은 그래픽이며 로컬 화면에 올바르게 표시됩니까? 따라서 서버를 계정에 연결하면 내 답변에 설명 된대로 서버를 구성 할 수 있습니다.
terdon

연결되었으므로 ~ / .dropbox에서 구성을 삭제하여 처음부터 시작했습니다. "당신이 언급 한 데몬은 그래픽이며 로컬 화면에 바로 표시됩니까?" 아니요, 서버에서 실행될 때 그래픽이 아닙니다. X11 전달이 켜져 있음에도 불구하고 X11이 없음을 감지하고 명령 행 전용 모드로 전환해야합니다.
xx

0

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

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

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


0

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를 설정하는 방법에 대한 예제도 있습니다.


이 링크게시 해 주셔서 감사합니다. MestreLion ⁠⁠ .
Scott

0

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

  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 루트 폴더가 될 디렉토리를 기억하십시오 . 그런 다음 나에게 잘 작동했습니다.


안녕하세요, 수퍼 유저 님을 환영합니다. 답을 자세히 설명해 주시겠습니까? 구체적으로, 사용자가해야 할 일에 대해 더 깊이있게 설명 하시겠습니까?
서비스 관리자

0

나는 같은 문제가 있었다. Dropbox를 사용하여 우분투 서버에서 큰 보조 하드 디스크를 동기화하고 싶었습니다. 내가 한 것은 dropbox를 설치하기 전에 보조 하드 디스크에서 홈 디렉토리로의 심볼릭 링크를 만든 것입니다

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

위 단계를 완료 한 후에 만 ​​Dropbox를 설치하십시오.

이런 식으로 홈 디렉토리의 Dropbox는 심볼릭 링크이고 실제 폴더는 심볼릭 링크 된 곳입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.