Làm cách nào để thay đổi thư mục Dropbox trên máy chủ GNU / Linux không đầu?


22

Tôi đã cài đặt Dropbox 2.0.0 qua dòng lệnh trên máy chủ nhà của tôi (Ubuntu Server 12.04) để sử dụng để sao lưu tự động ngoài trang web, nhưng tôi không thể thay đổi thư mục mà trình nền Dropbox tiếp tục được đồng bộ hóa.

Tôi đã thử như sau:

Các tài liệu chính thức nói rằng sử dụng ứng dụng máy tính để bàn, không áp dụng trong tình huống của tôi. Tuy nhiên, tôi đã cài đặt ứng dụng máy tính để bàn trên máy tính để bàn của mình và thay đổi vị trí thư mục mặc định, nhưng tôi không thể tìm thấy nơi thay đổi này được lưu trữ trong thư mục ~ / .dropbox / để tôi có thể thực hiện thay đổi tương tự trên máy chủ.

Trang này (và một số trang khác) đề xuất một tập lệnh Python để thực hiện công việc. Nhìn vào tập lệnh, nó mở ra một cơ sở dữ liệu SQLite có tên ~ / .dropbox / dropbox.db, không tồn tại trên bản cài đặt Dropbox của tôi, khiến tôi tin rằng tập lệnh đã lỗi thời.

Chủ đề diễn đàn này đề nghị chèn thủ công hàng yêu cầu trong cơ sở dữ liệu config.db, tôi đã làm, nhưng nó không có gì khác biệt. Tôi đã kiểm tra cùng một tệp cơ sở dữ liệu trên máy tính để bàn của mình và nó không có khóa dropbox_path, vì vậy tôi cho rằng thông tin trong luồng đó cũng đã lỗi thời cho phiên bản 2.0.

Tôi đã cố gắng khởi chạy trình hướng dẫn cấu hình GUI Dropbox qua SSH với chuyển tiếp X11, như được đề xuất trong một trong các câu trả lời, nhưng nhị phân phải phát hiện sự vắng mặt của bản cài đặt X11 cục bộ và thay vào đó, nó khởi động một trình nền dòng lệnh thay đổi tùy chọn tôi cần.

Tôi hiện đang sử dụng một liên kết tượng trưng, ​​như được đề xuất như một câu trả lời, nhưng đây là một loại bùn . Tôi muốn biết cách chính xác để thực hiện thay đổi.

Làm cách nào để thay đổi thư mục Dropbox trên máy chủ GNU / Linux không đầu?

Cập nhật: Tôi đã bỏ Dropbox và bắt đầu sử dụng Sao chép . Các công cụ và hỗ trợ Linux của họ vượt trội hơn nhiều so với Dropbox. Tôi để câu hỏi này ở đây trong trường hợp ai đó, một ngày nào đó, có thể trả lời nó.


Câu trả lời của tôi mặc dù, nếu đây là máy chủ gia đình của bạn tại sao bạn không kết nối màn hình với nó, thực hiện các thay đổi và đưa màn hình đi một lần nữa?
terdon

@terdon, Không có X11 để chạy ứng dụng máy tính để bàn Dropbox.
xx

Ah, OK, đủ công bằng, hãy thử câu trả lời của tôi sau đó, nó sẽ hoạt động. Máy chủ không đầu nhà của tôi thực sự có X, nó chỉ không được khởi động theo mặc định và không có màn hình kèm theo, đó là lý do tôi hỏi. Tôi đã thử nghiệm câu trả lời của mình trên một máy chủ thực sự không đầu, không có X11 và nó đã hoạt động. Chuyển tiếp X11 sử dụng máy chủ X cục bộ và không cần chạy trên máy từ xa.
terdon

Bất kỳ lựa chọn tốt hơn bây giờ sao chép đã biến mất? "Sao chép đã bị ngừng vào ngày 1 tháng 5 năm 2016. Là một người dùng Sao chép trước đây, chúng tôi nghĩ bạn sẽ thích Trove." - đã thử chưa?
Xen2050

Câu trả lời:


11

Bạn chỉ có thể tạo một liên kết tượng trưng đến ~/Dropbox

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

3
Câu hỏi đặt ra, "Làm thế nào tôi có thể thay đổi thư mục Dropbox ...", liên kết tượng trưng không phải là câu trả lời.
xx

4
Nhưng nó quan tâm đến lý do mà bạn muốn thay đổi thư mục Dropbox, xem Vấn đề XY
Aditya

Thực ra. Tôi nghĩ rằng điều này sẽ không hoạt động, tôi nhớ có vấn đề với các liên kết tượng trưng không hoạt động với Dropbox.
terdon

3
Symlinking không hoạt động, và đó là những gì tôi đã sử dụng trước khi đặt câu hỏi này, nhưng đó là Kydge. Tôi đến đây để tìm ra cách chính xác để thực hiện thay đổi. Tôi sẽ cập nhật câu hỏi để phản ánh điều này.
xx

Điều này không hoạt động nếu bạn cần di chuyển thư mục Dropbox ra khỏi thư mục chính của mình, ví dụ nếu muốn người dùng khác có thể truy cập nội dung của thư mục Dropbox của bạn. Giải pháp của ikandar dưới đây đã làm việc cho tôi, cho tình huống này.
jesse.r

6

Vì vậy, đây là mẹo của tôi:

Đầu tiên tôi xóa tất cả các thư mục liên quan được tạo trong thư mục nhà của tôi

rm -rf ~/.dropbox-dist

Tôi cũng xóa thư mục mặc định Dropbox:

rm -rf ~/Dropbox

Vì vậy, sau đó tôi đã cài đặt lại daemon dropbox bằng cách định nghĩa HOME env var như thế này:

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

Tiếp theo, bắt đầu trình nền dropboxd bằng tay bằng cách chạy:

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

Sau đó chờ đợi cho đến khi kết thúc.


1
Theo kinh nghiệm của tôi, bạn cũng cần xóa ~ / .dropbox, nếu không, bước 4 sẽ phàn nàn về việc máy tính đã được liên kết và sẽ không cho phép bạn tiếp tục trong / data / other_folder.
jesse.r

Cảm ơn, điều này đã làm việc cho tôi. Hãy cẩn thận: 1. Hãy nhớ rằng dữ liệu của bạn sẽ ở trong /data/other_folder/Dropbox2. Nó sẽ tạo ra một số dotfiles khác bên trong other_folder, ví dụ như khi nó khởi chạy trình duyệt của bạn để đăng nhập ban đầu. Bạn có thể thử xóa chúng sau. 3. Bạn phải sử dụng HOME=...mỗi khi bạn bắt đầu dropbox. (Tôi đã thử di chuyển các .dropbox*thư mục đến nhà thực sự của mình sau khi mọi thứ đang hoạt động, nhưng điều đó chỉ phá vỡ thiết lập.)
joeytwiddle

4

Đây là một thiếu sót thực sự của ứng dụng Linux. Trong các phiên bản cũ hơn, bạn có thể sửa đổi tệp cài đặt. Trong phiên bản gần đây nhất, giải pháp duy nhất là thay đổi $HOMEbiến trước khi Dropbox bắt đầu.

Hãy nói rằng chúng tôi muốn thư mục 'Dropbox' xuất hiện /foo/bar.

  1. Cài đặt Dropbox để /foo/bar/.dropbox-dist.
  2. Tải xuống tập lệnh Python để kiểm soát Dropbox từ trang Dropbox của Linux .
  3. Trong kịch bản này, bên dưới import osthêm một dòng:os.environ["HOME"] = "/foo/bar"
  4. Dropbox được kiểm soát / bắt đầu thông qua tập lệnh kiểm soát bây giờ nghĩ /foo/bar/là của bạn /home/username/.

Điều này có nghĩa là khi sử dụng tập lệnh điều khiển, bây giờ nó sẽ tìm kiếm /foo/bar/.dropbox-dist/dropboxđể thực thi trình nền. Các tập tin cấu hình sẽ được ghi vào /foo/bar/.dropbox/. Các /foo/bar/Dropbox/thư mục sẽ được sử dụng để đồng bộ hóa tập tin.


Mẹo tuyệt vời! Giúp rất nhiều. Ghép nối với ln -s ~/dropbox.py /usr/local/bin/dropboxít gõ!
Chris McKnight

Điều này rất tốt cho tôi, mặc dù khi tôi cố gắng dừng dropbox, tôi nhận được một thông báo Dropbox isn't responding!. Có vẻ như nó dừng lại mặc dù. Hơi lạ.
ohruunuruus

Thật thú vị, việc tạo một tập lệnh trong /usr/local/bintập hợp HOMEđó trước khi thực thi tập lệnh python (thay vì tự sửa đổi tập lệnh bằng os.environ["HOME"]) dường như đã làm sạch điều này.
ohruunuruus

0

Nếu bạn có sshquyền truy cập vào máy đang được đề cập, bạn có thể khởi chạy dropboxứng dụng máy tính để bàn trên máy chủ không đầu và hiển thị trên máy cục bộ của bạn:

  1. Kết nối với máy chủ bằng chuyển tiếp cổng X11

    ssh -Y user@server
    
  2. Bây giờ khởi chạy ứng dụng dropbox, nó sẽ xuất hiện trên màn hình cục bộ của bạn

    ~/.dropbox-dist/dropbox
    

    Nó có thể mất một lúc tùy thuộc vào kết nối mạng của bạn. Đừng bỏ cuộc nếu bạn không nhận được thông báo lỗi. Tôi có thể xác nhận rằng điều này đã hoạt động khi tôi kết nối từ hộp Debian của mình với máy chủ Ubuntu từ xa đang chạy không có máy chủ X. Sau vài giây, biểu tượng Dropbox thứ hai xuất hiện trên thanh tác vụ cục bộ của tôi và tôi có thể truy cập / sửa đổi các tùy chọn cài đặt Dropbox từ xa từ đó.

Bây giờ, một số chi tiết có thể thay đổi vì tôi đang sử dụng Dropbox 1.6.18 nhưng những điều cơ bản nên giống nhau. Trong trường hợp tên hoặc vị trí của ứng dụng đã thay đổi, đây là cách tôi tìm ra lệnh nào tôi cần thực hiện để khởi chạy ứng dụng máy tính để bàn Dropbox:

  1. Lấy danh sách các quy trình hiện đang chạy

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Khởi chạy ứng dụng Dropbox (nhấp chuột phải vào biểu tượng Dropbox trên thanh tác vụ của bạn và chọn "Tùy chọn ...") và lặp lại

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. So sánh các tập tin để tìm lệnh liên quan

    diff drop.txt no_drop.txt
    

1
Không có ứng dụng GUI để chuyển tiếp, chỉ có dropboxd, trình nền Dropbox.
xx

Bạn đã thử topdifflừa tôi đề nghị? Khởi chạy ứng dụng trên máy cục bộ của bạn, một cái gì đó phải được khởi chạy, do đó có một lệnh. Nếu trong phiên bản mới, lệnh duy nhất là daemon, sau đó khởi chạy daemon, nó vẫn sẽ xuất hiện trên thanh tác vụ của bạn.
terdon

Trên máy tính để bàn của tôi, chạy ~ / dropbox-dist / dropbox sẽ khởi chạy trình hướng dẫn cấu hình GUI. Trên máy chủ, thông qua kết nối ssh với X11 chuyển tiếp, ~ / dropbox-dist / dropbox sẽ khởi chạy một trình nền hướng dẫn tôi đi đến một URL cụ thể để 'liên kết máy này'. Cả máy chủ và máy tính để bàn đều sử dụng cùng một kho lưu trữ để cài đặt các tệp dropbox. Trong kho lưu trữ, chỉ có hai tệp thực thi là dropbox và dropboxd, tệp sau chỉ là tập lệnh shell để đặt LD_LIBRARY_PATH và khởi chạy tệp trước.
xx

Hmm, máy chủ từ xa của tôi đã được liên kết. Nếu tôi nhớ chính xác, tôi phải khởi chạy một trình duyệt đồ họa ( lynxkhông thể làm như vậy) trên máy từ xa (luôn sử dụng chuyển tiếp X11) và liên kết máy bằng trình duyệt đó. Hãy thử làm điều đó và sau đó khởi chạy ~/dropbox-dist/dropboxlại. Ít nhất chúng tôi đã xác nhận nó hoạt động, daemon bạn đề cập là đồ họa và được hiển thị trên màn hình cục bộ của bạn phải không? Do đó, khi bạn đã liên kết máy chủ của mình với tài khoản của mình, bạn sẽ có thể định cấu hình nó như được mô tả trong câu trả lời của tôi.
terdon

Nó đã được liên kết, tôi vừa xóa cấu hình từ ~ / .dropbox để bắt đầu lại từ đầu. "daemon bạn đề cập là đồ họa và được hiển thị trên màn hình cục bộ của bạn phải không?" Không, nó không phải là đồ họa khi chạy trên máy chủ. Nó phải được phát hiện sự vắng mặt của X11 và chuyển sang chế độ chỉ dòng lệnh, mặc dù chuyển tiếp X11 đang được bật.
xx

0

Đây có thể là những gì bạn đang tìm kiếm:

Thiết lập Dropbox trên máy chủ Linux không có GUI

Tôi xin lỗi vì chỉ đơn giản là ném URL thay vì mô tả các quy trình ở đây. Tôi đang làm việc và không thể giải thích nhiều hơn ngay bây giờ. Sau này tôi có thể mở rộng câu trả lời, tôi chỉ không muốn mất URL có giá trị này với giải pháp của bạn.


0

TechRepublic có một trang - Thiết lập Dropbox trên máy chủ Linux không có GUI - yêu cầu giải quyết vấn đề này:

Có các công cụ GUI được cung cấp để quản lý Dropbox và thiết lập nó cho [Linux, Windows và OS X]. Nhưng điều gì xảy ra nếu bạn muốn liên kết một máy tính Linux không có GUI? Có thể, với một chút công việc, để Dropbox chạy mà không cần GUI, cho phép bạn đồng bộ hóa các tệp với các máy chủ đang chạy không đầu hoặc nơi tài khoản người dùng có thể không được đăng nhập mọi lúc.

    ︙

Để bắt đầu:

# 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

Sử dụng plat=lnx.x86nếu bạn muốn máy khách 32 bit. Điều này tạo ra một thư mục tạm thời cho các tệp cài đặt Dropbox của chúng tôi và tải xuống hai tập lệnh python cần thiết: dbmakefakelib.py tạo các bản sao sơ ​​khai giả của thư viện GUI để trình nền dropboxd khởi động và dbreadconfig.pyhiển thị thông tin cấu hình dropbox.

Quyết định người dùng nào sẽ chạy ứng dụng khách Dropbox; đây có thể là người dùng chuyên dụng hoặc có thể là người dùng thông thường. Bạn cũng có thể có nhiều phiên bản Dropbox chạy trên hệ thống, vì vậy bạn có thể chọn thiết lập nó cho nhiều người dùng (mặc dù mỗi người dùng chỉ có thể chạy một phiên bản Dropbox). Trong ví dụ này, chúng tôi sẽ tạo ra một người dùng đặc biệt, Dropbox, người sẽ chạy ứng dụng khách Dropbox này.

# 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?

Tập lệnh dbmakefakelib.py yêu cầu gcc, vì vậy bạn phải cài đặt gcc trên hệ thống. Điều này tạo ra các bản sao sơ ​​khai giả của các thư viện GUI để dropboxd sẽ bắt đầu. Cuối cùng, bạn có thể thấy rằng nó đã khởi chạy dropboxd; nhấn Ctrl+ Cđể thoát tập lệnh. dropboxd vẫn nên chạy trong nền:

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

Bây giờ dropbox đang chạy, chúng tôi cần liên kết nó với một tài khoản hiện có:

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

Lấy host_id từ trên. Đăng nhập vào giao diện web Dropbox và khi bạn đã đăng nhập, hãy truy cập thủ công URL này:

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

Thay thế [HOST_ID]bằng host_id mà dbreadconfig.py xuất ra. Khi bạn đã thực hiện điều đó, trang Dropbox sẽ cho bạn biết rằng bạn đã liên kết thành công một máy tính mới. Chuyển đến cài đặt Tài khoản của bạn và sau đó là Máy tính của tôi và bạn sẽ thấy máy tính mới được liệt kê.

Nếu bạn chưa giết quá trình dropboxd mà dbmakefakelib.py bắt đầu, bạn sẽ thấy rằng nó đã tải các tệp từ Dropbox xuống ~ / Dropbox / trong nền.

Để bắt đầu trình nền dropboxd trong nền khi khởi động, bạn có thể thêm đoạn mã sau vào tập lệnh /etc/rc.d/rc.local init của bạn:

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

Điều này sẽ bắt đầu dropboxd trong nền với các đặc quyền của người dùng được cài đặt (trong trường hợp này là người dùng là Dropboxbox). Nếu bạn muốn thực hiện một bản inits toàn hệ thống, hãy truy cập wiki Dropbox nơi có một số ví dụ bạn có thể sử dụng, bao gồm các bản inits cho Fedora / Red Hat và cho Debian / Ubuntu. Nó cũng có các ví dụ về cách thiết lập Dropbox chạy dưới daemontools của DJB.


Nhờ đi đến MestreLion ⁠⁠ cho đăng liên kết này .
Scott

0

Tôi chỉ gặp vấn đề tương tự và có thể giải quyết nó bằng cách

  1. Hủy liên kết tài khoản thông qua giao diện người dùng web Dropbox:

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

  2. Xóa ~/.dropboxthư mục cho người dùng đang chạy dropboxd.

    rm -r ~/.dropbox
    
  3. Bạn có thể cần phải dọn sạch ~/Dropboxthư mục.

Bước đầu tiên có thể không cần thiết, nhưng tôi đã thực hiện điều đó trước khi gỡ bỏ ~/.dropbox, điều này cuối cùng cho phép tôi thiết lập lại.

Hãy nhớ đến cdthư mục bạn muốn là thư mục gốc Dropbox của bạn. Nó sau đó làm việc tốt cho tôi.


Xin chào, và chào mừng đến với SuperUser. Bạn có thể giải thích về câu trả lời của bạn? Cụ thể, đưa ra một chiều sâu hơn về những gì người dùng cần làm?
Quản lý dịch vụ

0

Tôi gặp vấn đề tương tự. Tôi muốn sử dụng dropbox để đồng bộ hóa một đĩa cứng thứ cấp lớn trên máy chủ Ubuntu. Những gì tôi đã làm là tôi đã tạo một liên kết tượng trưng từ đĩa cứng thứ cấp vào thư mục chính của mình trước khi cài đặt dropbox

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

Chỉ cài đặt Dropbox sau khi hoàn thành bước trên.

Theo cách này, Dropbox trong thư mục Home là symlink và thư mục thực là nơi bạn liên kết symlink từ đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.