Bagaimana cara mengubah direktori Dropbox di server GNU / Linux tanpa kepala?

22

Saya telah menginstal Dropbox 2.0.0 melalui baris perintah di server rumah saya (Ubuntu Server 12.04) untuk digunakan untuk cadangan otomatis di luar situs, tetapi saya tidak dapat mengubah direktori yang tetap disinkronkan oleh daemon Dropbox.

Saya sudah mencoba yang berikut ini:

Dokumen resmi mengatakan untuk menggunakan aplikasi desktop, yang tidak berlaku dalam situasi saya. Namun saya menginstal aplikasi desktop pada mesin desktop saya dan mengubah lokasi folder default, tetapi saya tidak dapat menemukan di mana perubahan ini disimpan di direktori ~ / .dropbox / sehingga saya dapat membuat perubahan yang sama di server.

Halaman ini (dan beberapa lainnya) merekomendasikan skrip Python untuk melakukan pekerjaan itu. Melihat skripnya, ia membuka basis data SQLite yang disebut ~ / .dropbox / dropbox.db, yang tidak ada pada instalasi Dropbox saya, membuat saya percaya bahwa skrip itu ketinggalan zaman.

Utas forum ini menyarankan untuk memasukkan baris yang diperlukan secara manual ke dalam database config.db, yang saya lakukan, tetapi tidak ada bedanya. Saya memeriksa file database yang sama pada mesin desktop saya, dan tidak memiliki kunci dropbox_path, jadi saya menganggap informasi di utas itu juga ketinggalan zaman untuk versi 2.0.

Saya telah mencoba untuk meluncurkan wizard konfigurasi Dropbox GUI melalui SSH dengan penerusan X11, seperti yang disarankan dalam salah satu jawaban, tetapi biner harus mendeteksi tidak adanya instalasi X11 lokal dan memulai daemon baris perintah sebagai gantinya, yang tidak menyediakan sarana untuk ubah opsi yang saya butuhkan.

Saat ini saya menggunakan symlink, seperti yang disarankan sebagai jawaban, tetapi ini adalah kludge . Saya ingin tahu cara yang benar untuk melakukan perubahan.

Bagaimana cara mengubah direktori Dropbox di server GNU / Linux tanpa kepala?

Pembaruan: Saya sudah membuang Dropbox dan mulai menggunakan Salin . Alat dan dukungan Linux mereka jauh lebih unggul daripada Dropbox. Saya meninggalkan pertanyaan ini di sini kalau-kalau seseorang, suatu hari, dapat menjawabnya.

xx
sumber
Meskipun jawaban saya, jika ini adalah server rumah Anda, mengapa Anda tidak menghubungkan layar saja ke sana, membuat perubahan dan mengambil layar lagi?
terdon
@terdon, Tidak ada X11 untuk menjalankan aplikasi desktop Dropbox.
xx
Ah, oke, cukup adil, coba jawabanku, itu pasti berhasil. Server tanpa kepala rumah saya sebenarnya memiliki X, hanya saja tidak dimulai secara default dan tidak ada layar terpasang, itu sebabnya saya bertanya. Saya menguji jawaban saya pada server nyata tanpa kepala, X11 dan itu berhasil. Penerusan X11 menggunakan server X lokal dan tidak perlu satu berjalan di mesin jarak jauh.
terdon
Adakah pilihan yang lebih baik sekarang setelah Salin hilang? "Salinan dihentikan pada 1 Mei 2016. Sebagai mantan pengguna Salin, kami pikir Anda akan menyukai Trove." - mencobanya?
Xen2050

Jawaban:

11

Anda bisa saja membuat symlink ke ~/Dropbox

ln -s <dir-that-you-want-to-sync> ~/Dropbox
Aditya
sumber
3
Pertanyaannya bertanya, "Bagaimana saya bisa mengubah direktori Dropbox ...", symlinking bukanlah jawabannya.
xx
4
Tapi itu menangani alasan mengapa Anda ingin mengubah direktori Dropbox, lih. Masalah XY
Aditya
Sebenarnya. Saya pikir ini tidak akan berhasil, saya ingat ada masalah dengan symlink yang tidak berfungsi dengan Dropbox.
terdon
3
Mengaitkan memang berfungsi, dan itulah yang saya gunakan sebelum mengajukan pertanyaan ini, tetapi itu adalah Kludge. Saya datang ke sini untuk mencari tahu cara yang benar untuk melakukan perubahan. Saya akan memperbarui pertanyaan untuk mencerminkan hal ini.
xx
Ini tidak berfungsi jika Anda perlu memindahkan folder Dropbox dari direktori home Anda, mis. Jika ingin pengguna lain dapat mengakses konten folder Dropbox Anda. solusi ikandar di bawah ini bekerja untuk saya, untuk situasi ini.
jesse.r
6

Jadi inilah trik saya:

Pertama saya menghapus semua folder terkait yang dibuat di folder rumah saya

rm -rf ~/.dropbox-dist

Saya juga menghapus folder default Dropbox:

rm -rf ~/Dropbox

Jadi saya menginstal ulang dropbox daemon dengan mendefinisikan HOME env var seperti ini:

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

Selanjutnya, mulai daemon dropboxd secara manual dengan menjalankan:

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

Kemudian tunggu sampai selesai.

ikandars
sumber
1
Dalam pengalaman saya, Anda juga perlu menghapus ~ / .dropbox, jika tidak langkah 4 akan mengeluh tentang komputer yang telah ditautkan dan tidak akan membiarkan Anda melanjutkan dalam / data / other_folder.
jesse.r
Terima kasih, ini berhasil untuk saya. Peringatan: 1. Ingat bahwa data Anda akan tinggal di /data/other_folder/Dropbox2. Ini akan membuat beberapa file dot lain di dalamnya other_folder, misalnya ketika meluncurkan browser Anda untuk login awal. Anda dapat mencoba membersihkannya nanti. 3. Anda harus menggunakan HOME=...setiap kali Anda memulai dropbox. (Saya mencoba memindahkan .dropbox*folder ke rumah saya yang sebenarnya setelah semuanya bekerja, tetapi itu baru saja merusak setup.)
joeytwiddle
4

Ini adalah kekurangan nyata dari aplikasi Linux. Di versi yang lebih lama Anda dapat memodifikasi file pengaturan. Di versi terbaru, tampaknya satu-satunya solusi adalah mengubah $HOMEvariabel sebelum Dropbox dimulai.

Katakanlah kita ingin folder 'Dropbox' muncul /foo/bar.

  1. Instal Dropbox ke /foo/bar/.dropbox-dist.
  2. Unduh skrip Python untuk mengontrol Dropbox dari halaman Linux Dropbox .
  3. Dalam skrip ini, di bawah ini import ostambahkan baris:os.environ["HOME"] = "/foo/bar"
  4. Dropbox dikendalikan / dimulai melalui skrip kontrol yang sekarang dianggap milik /foo/bar/Anda /home/username/.

Ini berarti bahwa ketika menggunakan skrip kontrol sekarang mencari untuk /foo/bar/.dropbox-dist/dropboxmengeksekusi daemon. File konfigurasi akan ditulis ke /foo/bar/.dropbox/. The /foo/bar/Dropbox/folder akan digunakan untuk sinkronisasi file.

john doe
sumber
Tip luar biasa! Banyak membantu. Pasangkan dengan ln -s ~/dropbox.py /usr/local/bin/dropboxkurang mengetik!
Chris McKnight
Ini berfungsi baik untuk saya, meskipun ketika saya mencoba menghentikan dropbox saya mendapat pesan yang mengatakan Dropbox isn't responding!. Sepertinya itu berhenti. Sedikit aneh.
ohruunuruus
Yang cukup menarik, membuat skrip dalam /usr/local/binset HOMEsebelum mengeksekusi skrip python (daripada memodifikasi skrip itu sendiri dengan os.environ["HOME"]) tampaknya telah membersihkan ini.
ohruunuruus
0

Jika Anda memiliki sshakses ke mesin yang dimaksud, Anda mungkin dapat meluncurkandropbox aplikasi desktop di server tanpa kepala dan menampilkannya di mesin lokal Anda:

  1. Terhubung ke server menggunakan penerusan port X11

    ssh -Y user@server
    
  2. Sekarang luncurkan aplikasi dropbox, itu akan muncul di layar lokal Anda

    ~/.dropbox-dist/dropbox
    

    Mungkin diperlukan beberapa saat tergantung pada koneksi jaringan Anda. Jangan menyerah jika Anda tidak mendapatkan pesan kesalahan. Saya dapat mengonfirmasi bahwa ini berfungsi ketika saya terhubung dari kotak Debian ke server Ubuntu yang jauh yang tidak menjalankan server X. Setelah beberapa detik, ikon Dropbox kedua muncul di taskbar lokal saya dan saya dapat mengakses / memodifikasi opsi instalasi Dropbox jarak jauh dari sana.

Sekarang, beberapa detail mungkin berubah karena saya menggunakan Dropbox 1.6.18 tetapi dasarnya harus sama. Jika nama atau lokasi aplikasi telah berubah, ini adalah bagaimana saya menemukan perintah apa yang perlu saya jalankan untuk meluncurkan aplikasi desktop Dropbox:

  1. Dapatkan daftar proses yang sedang berjalan

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Luncurkan aplikasi Dropbox (klik kanan pada ikon Dropbox di bilah tugas Anda dan pilih "Preferensi ...") dan ulangi

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. Bandingkan file untuk menemukan perintah yang relevan

    diff drop.txt no_drop.txt
    
terdon
sumber
1
Tidak ada aplikasi GUI untuk meneruskan, hanya dropboxd, daemon Dropbox.
xx
Apakah Anda mencoba topdan difftrik yang saya sarankan? Luncurkan aplikasi di mesin lokal Anda, sesuatu harus diluncurkan, oleh karena itu ada perintah. Jika, dalam versi baru, satu-satunya perintah adalah daemon, lalu jalankan daemon, itu akan tetap muncul di taskbar Anda.
terdon
Di mesin desktop saya, menjalankan ~ / dropbox-dist / dropbox meluncurkan wizard konfigurasi GUI. Di server, melalui koneksi ssh dengan penerusan X11 aktif, ~ / dropbox-dist / dropbox meluncurkan daemon yang memerintahkan saya untuk pergi ke URL tertentu untuk 'menautkan mesin ini'. Baik server dan desktop menggunakan arsip yang sama persis untuk menginstal file dropbox. Dalam arsip, hanya dua file yang dapat dieksekusi adalah dropbox, dan dropboxd, yang berikutnya hanyalah skrip shell untuk mengatur LD_LIBRARY_PATH dan meluncurkan yang pertama.
xx
Hmm, server jauh saya telah dikaitkan. Jika saya ingat dengan benar, saya harus meluncurkan browser grafis ( lynxtidak bisa melakukannya) pada mesin jarak jauh (selalu menggunakan penerusan X11) dan menautkan mesin menggunakan browser itu. Coba lakukan itu dan kemudian luncurkan ~/dropbox-dist/dropboxlagi. Setidaknya kami telah mengkonfirmasi itu berfungsi, daemon yang Anda sebutkan adalah grafis dan ditampilkan di layar lokal Anda bukan? Oleh karena itu, setelah Anda menautkan server Anda ke akun Anda, Anda harus dapat mengkonfigurasinya seperti yang dijelaskan dalam jawaban saya.
terdon
Itu ditautkan, saya baru saja menghapus konfigurasi dari ~ / .dropbox untuk memulai dari awal. "daemon yang Anda sebutkan adalah grafis dan ditampilkan di layar lokal Anda, kan?" Tidak, ini tidak grafis saat dijalankan di server. Itu harus mendeteksi tidak adanya X11 dan masuk ke mode hanya baris perintah, meskipun penerusan X11 aktif.
xx
0

Ini mungkin yang Anda cari:

Mengatur Dropbox di server Linux tanpa GUI

Saya minta maaf karena hanya melemparkan URL daripada menjelaskan prosedur di sini. Saya sedang bekerja dan tidak bisa menjelaskan lebih lanjut sekarang. Nanti saya bisa memperluas jawabannya, saya hanya tidak ingin kehilangan URL yang berharga ini dengan solusi Anda.

MestreLion
sumber
0

TechRepublic memiliki halaman - Mengatur Dropbox di server Linux tanpa GUI - yang mengklaim dapat mengatasi masalah ini:

... Ada alat GUI yang disediakan untuk mengelola Dropbox dan mengaturnya untuk [Linux, Windows, dan OS X]. Tetapi apa yang terjadi jika Anda ingin menautkan komputer Linux yang tidak memiliki GUI? Mungkin saja, dengan sedikit kerja, untuk membuat Dropbox berjalan tanpa GUI, memungkinkan Anda untuk menyinkronkan file dengan server yang berjalan tanpa kepala atau di mana akun pengguna mungkin tidak masuk sepanjang waktu.

    ︙

Memulai:

# 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

Gunakan plat=lnx.x86jika Anda ingin klien 32-bit. Ini membuat direktori sementara untuk menginstal file Dropbox kami, dan mengunduh dua skrip python yang diperlukan: dbmakefakelib.py yang membuat salinan rintisan palsu pustaka GUI sehingga daemon dropboxd dimulai, dan dbreadconfig.pyyang menampilkan informasi konfigurasi dropbox.

Putuskan pengguna mana yang akan menjalankan klien Dropbox; ini bisa menjadi pengguna yang berdedikasi atau bisa juga pengguna biasa. Anda juga dapat menjalankan lebih dari satu instance Dropbox di sistem, jadi Anda dapat memilih untuk mengaturnya untuk beberapa pengguna (meskipun setiap pengguna hanya dapat menjalankan satu instance Dropbox). Untuk contoh ini, kami akan membuat "dropbox" pengguna khusus yang akan menjalankan klien Dropbox ini.

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

Skrip dbmakefakelib.py membutuhkan gcc, jadi Anda harus menginstal gcc pada sistem. Ini membuat salinan rintisan palsu dari pustaka GUI sehingga dropboxd akan mulai. Pada akhirnya, Anda dapat melihat bahwa itu meluncurkan dropboxd; tekan Ctrl+ Cuntuk keluar dari skrip. dropboxd masih harus berjalan di latar belakang:

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

Sekarang dropbox sedang berjalan, kita perlu menautkannya ke akun yang ada:

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

Rebut host_id dari atas. Masuk ke antarmuka web Dropbox, dan begitu Anda masuk, kunjungi URL ini secara manual:

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

Ganti [HOST_ID]dengan host_id yang dbreadconfig.py hasilkan. Ketika Anda telah melakukannya, situs Dropbox akan memberi tahu Anda bahwa Anda telah berhasil menautkan komputer baru. Buka pengaturan Akun Anda dan kemudian Komputer Saya dan Anda akan melihat komputer baru terdaftar.

Jika Anda belum membunuh proses dropboxd yang dbmakefakelib.py mulai, Anda akan menemukan bahwa itu sudah mengunduh file dari Dropbox ke ~ / Dropbox / di latar belakang.

Untuk memulai daemon dropboxd di latar belakang saat boot, Anda dapat menambahkan yang berikut ke skrip /etc/rc.d/rc.local init Anda:

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

Ini akan memulai dropboxd di latar belakang dengan hak-hak pengguna untuk mana ia diinstal (dalam hal ini, pengguna adalah "dropbox"). Jika Anda ingin membuat skrip init seluruh sistem, kunjungi wiki Dropbox di mana ada beberapa contoh yang dapat Anda gunakan, termasuk skrip init untuk Fedora / Red Hat dan untuk Debian / Ubuntu. Ini juga memiliki contoh cara mengatur Dropbox berjalan di bawah daemontools DJB.

Scott
sumber
Terima kasih pergi ke MestreLion ⁠⁠ karena memposting tautan ini .
Scott
0

Saya baru saja mengalami masalah yang sama dan dapat menyelesaikannya dengan

  1. Membatalkan tautan akun melalui UI web Dropbox:

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

  2. Menghapus ~/.dropboxdirektori untuk pengguna yang menjalankan dropboxd.

    rm -r ~/.dropbox
    
  3. Anda mungkin perlu membersihkan ~/Dropboxdirektori juga.

Langkah pertama mungkin tidak perlu, tetapi saya sudah melakukannya sebelum menghapus ~/.dropbox, yang akhirnya memungkinkan saya untuk mengaturnya lagi.

Ingatlah untuk cddirektori yang Anda inginkan sebagai folder root Dropbox Anda. Itu kemudian bekerja dengan baik untuk saya.

Ben M
sumber
Hai, dan selamat datang di SuperUser. Bisakah Anda menguraikan jawaban Anda? Secara khusus, berikan run down lebih mendalam tentang apa yang perlu dilakukan pengguna?
Manajer Layanan
0

Saya memiliki masalah yang sama. Saya ingin menggunakan dropbox untuk menyinkronkan hard disk sekunder besar di server ubuntu. Apa yang saya lakukan adalah saya membuat symlink dari hard disk sekunder ke direktori home saya sebelum menginstal dropbox

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

Instal hanya Dropbox setelah menyelesaikan langkah di atas.

Dengan cara ini, Dropbox di direktori Beranda adalah symlink dan folder sebenarnya adalah di mana pun Anda symlinked.

marcus trenton
sumber