Dropbox dizinini başsız bir GNU / Linux sunucusunda nasıl değiştiririm?


22

Site dışı otomatik yedekleme işlemleri için ev sunucuma (Ubuntu Server 12.04) komut satırı aracılığıyla Dropbox 2.0.0 yükledim , ancak Dropbox arka plan programının senkronize edileceği dizini değiştiremiyorum.

Aşağıdakileri denedim:

Resmi dokümanlar benim durumumda geçerli olmayan masaüstü uygulamasını kullandığını söylüyor. Ancak masaüstü uygulamasını masaüstü bilgisayarıma yükledim ve varsayılan klasör konumunu değiştirdim, ancak bu değişikliğin ~ / .dropbox / dizininde nerede saklandığını bulamıyorum, böylece aynı değişikliği sunucuda yapabiliyorum.

Bu sayfa (ve diğerleri) işi yapmak için bir Python betiği önermektedir . Komut dosyasına bakıldığında, Dropbox yüklememde bulunmayan ~ / .dropbox / dropbox.db adlı bir SQLite veritabanını açar ve bu da komut dosyasının güncel olmadığına inanmamı sağlar.

Bu forum dizisi , gerekli satırı elimden yaptığım config.db veritabanına elle eklemeyi önerdi, ancak hiçbir fark yaratmadı. Masaüstü bilgisayarımda aynı veritabanı dosyasını kontrol ettim ve dropbox_path anahtarına sahip değildi, bu yüzden o konudaki bilginin de sürüm 2.0 için güncel olmadığını varsayıyorum.

Dropbox GUI yapılandırma sihirbazını SSH üzerinden X11 yönlendirme ile başlatmaya çalıştım, cevaplardan birinde önerildiği gibi, ancak ikili yerel bir X11 kurulumunun yokluğunu tespit etmeli ve bunun yerine bir komut satırı arka plan programı başlatmalı. ihtiyacım olan seçeneği değiştirin.

Şu anda bir cevap olarak önerildiği gibi bir sembolik bağlantı kullanıyorum, ancak bu bir çamur . Değişikliği yapmanın doğru yolunu bilmek istiyorum.

Dropbox dizinini başsız bir GNU / Linux sunucusunda nasıl değiştiririm?

Güncelleme: Dropbox'ı kapattım ve Kopyala'yı kullanmaya başladım . Linux araçları ve destekleri Dropbox'tan çok daha üstün. Bir gün birisinin cevap verebilmesi için bu soruyu burada bırakıyorum.


Buna rağmen cevabım, bu sizin ev sunucunuzsa, neden sadece bir ekrana bağlanmıyorsunuz, değişiklikleri yapmıyor ve ekranı tekrar alıyorsunuz?
terdon

@ terdon, Dropbox masaüstü uygulamasını çalıştırmak için X11 yoktur.
xx

Ah, tamam, yeterince adil, cevabımı dene o zaman işe yaramalı. Evimde başsız sunucumda aslında X var, varsayılan olarak henüz başlatılmadı ve ekran eklenmedi, bu yüzden sordum. Cevabımı gerçekten kafasız, X11'siz bir sunucuda test ettim ve işe yaradı. X11 iletme, yerel X sunucusunu kullanır ve uzaktaki makinede çalışmasına gerek yoktur.
terdon

Kopyalama bitti, daha iyi bir seçenek var mı? "Kopyalama 1 Mayıs 2016'da sona erdi. Eski bir Kopya kullanıcısı olarak, Trove'u beğeneceğinizi düşünüyoruz." - denedin mi?
Xen2050

Yanıtlar:


11

Sadece bir sembolik bağlantı oluşturabilirsin. ~/Dropbox

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

3
"Dropbox dizinini nasıl değiştirebilirim ..." sorusunun cevabı soru değil.
xx

4
Ancak , Dropbox dizinini değiştirmek istediğiniz nedenle ilgilenir , cf. XY sorunu
Aditya

Aslında. Bunun işe yaramayacağını düşünüyorum, Dropbox ile çalışmayan semboliklerle sorun yaşadığımı hatırlıyorum.
terdon

3
Symlinking işe yarıyor ve bu soruyu sormadan önce kullandığım şeydi, ama bu bir Kludge. Buraya değişikliği yapmanın doğru yolunu bulmak için geldim. Bunu yansıtacak şekilde soruyu güncelleyeceğim.
xx

Bu, Dropbox klasörünüzü ana dizininizin dışına çıkarmanız gerekirse, örneğin diğer kullanıcıların Dropbox klasörünüzün içeriğine erişebilmesini istiyorsanız bu işe yaramaz. aşağıdaki durumda İkandar'ın çözümü benim için çalıştı.
jesse.r

6

İşte benim numaram:

İlk önce giriş klasörümde oluşturulan ilgili tüm klasörleri kaldırdım.

rm -rf ~/.dropbox-dist

Dropbox varsayılan klasörünü de kaldırdım:

rm -rf ~/Dropbox

Bu yüzden HOME'u env var tanımlayarak dropbox arka planını yeniden yükledim:

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

Sonra, dropboxd daemonunu elle çalıştırıp başlatın:

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

O zaman bitirene kadar bekle.


1
Tecrübelerime göre, ~ / .dropbox dosyasını da kaldırmanız gerekir, aksi halde 4. adım daha önce bağlanmış olan bilgisayardan şikayet eder ve / data / other_folder içinde ilerlemenize izin vermez.
jesse.r

Teşekkürler, bu benim için çalıştı. Uyarılar: 1. Verilerinizin yaşayacağını unutmayın /data/other_folder/Dropbox2. other_folderÖrneğin, ilk giriş için tarayıcınızı başlattığında içinde başka bazı nokta dosyaları yaratacaktır . Bunları daha sonra temizlemeyi deneyebilirsiniz. 3. HOME=...Dropbox'ı her başlattığınızda kullanmanız gerekir . (Her şey çalıştıktan sonra .dropbox*klasörleri gerçek evime taşımaya çalıştım , ama bu sadece kurulumu bozdu.)
joeytwiddle

4

Bu, Linux uygulamasının gerçek bir eksikliğidir. Eski sürümlerde, ayarlar dosyasını değiştirebilirsiniz. En son sürümde, $HOMEDropbox başlamadan önce değişkeni değiştirmek için tek çözüm görünmektedir .

Diyelim ki 'Dropbox' klasörünün görünmesini istiyoruz /foo/bar.

  1. Dropbox'ı yükleyin /foo/bar/.dropbox-dist.
  2. Dropbox'ı Linux Dropbox sayfasından kontrol etmek için Python betiğini indirin .
  3. Bu komut dosyasında, aşağıdaki import ossatırı ekleyin:os.environ["HOME"] = "/foo/bar"
  4. Dropbox tarafından kontrol edilen / kontrol komut dosyası ile başlatılan şimdi /foo/bar/siz olduğunu düşünüyor /home/username/.

Bu, kontrol betiğini kullanırken şimdi /foo/bar/.dropbox-dist/dropboxdaemonu çalıştırmak istediği anlamına gelir . Yapılandırma dosyaları yazılacaktır /foo/bar/.dropbox/. /foo/bar/Dropbox/Klasör dosya senkronizasyonu için kullanılacaktır.


Mükemmel ipucu! Çok yardımcı oldu. ln -s ~/dropbox.py /usr/local/bin/dropboxDaha az yazı yazmak için bunu eşleştirin !
Chris McKnight,

Bu benim için harika, ancak dropbox'ı durdurmaya çalıştığımda bir mesaj alıyorum Dropbox isn't responding!. Yine de bitiyor gibi görünüyor. Biraz garip.
ohruunuruus

İlginç bir şekilde , python betiğini çalıştırmadan önce /usr/local/binayarlanan bir betiği oluşturmak HOME(betiğin kendisini değiştirmek yerine os.environ["HOME"]) bunu temizlemiş görünüyor.
ohruunuruus

0

sshSöz konusu makineye erişiminiz varsa , dropboxmasaüstü uygulamasını başsız sunucuda başlatabilir ve yerel makinenizde görüntüleyebilirsiniz:

  1. X11 bağlantı noktası iletmeyi kullanarak sunucuya bağlanın

    ssh -Y user@server
    
  2. Şimdi dropbox uygulamasını başlatın, yerel ekranınızda görünmelidir

    ~/.dropbox-dist/dropbox
    

    Ağ bağlantınıza bağlı olarak biraz zaman alabilir. Bir hata mesajı almazsanız pes etmeyin. Debian kutumdan X sunucusu olmayan uzaktaki bir Ubuntu sunucusuna bağlandığımda bunun çalıştığını onaylayabilirim. Birkaç saniye sonra yerel görev çubuğumda ikinci bir Dropbox simgesi belirdi ve oradan uzak Dropbox kurulumunun seçeneklerine erişebildim / değiştirebildim.

Şimdi, Dropbox 1.6.18 kullandığım için bazı detaylar değişebilir ancak temeller aynı olmalı. Uygulamanın adı veya konumu değiştiğinde, Dropbox masaüstü uygulamasını başlatmak için hangi komutu çalıştırmam gerektiğini öğrendim:

  1. Çalışmakta olan işlemlerin listesini alın

    top -cbd .10 -n 1 | sort > no_drop.txt
    
  2. Dropbox uygulamasını başlatın (görev çubuğunuzdaki Dropbox simgesine sağ tıklayın ve "Tercihler ..." i seçin) ve tekrarlayın

    top -cbd .10 -n 1 | sort > drop.txt
    
  3. İlgili komutu bulmak için dosyaları karşılaştırın

    diff drop.txt no_drop.txt
    

1
İletilecek GUI uygulaması yok, yalnızca dropboxd, Dropbox arka plan programı var.
xx

Denediniz mi topve diffben önerdi hile var mı? Uygulamayı yerel makinenizde başlatın, bir şeyler başlatılmalı, dolayısıyla bir komut var. Yeni sürümde, tek komut daemon ise, sonra daemon'u başlatın, görev çubuğunuzda görünmeye devam eder.
terdon

Masaüstü bilgisayarımda ~ / dropbox-dist / dropbox'ın çalıştırılması bir GUI yapılandırma sihirbazı başlatır. Sunucuda, X11 yönlendirmesi olan ssh bağlantısıyla ~ / dropbox-dist / dropbox benden 'bu makineyi bağlamak' için belirli bir URL'ye gitmemi söyleyen bir arka plan programı başlatıyor. Hem sunucu hem de masaüstü, dropbox dosyalarını yüklemek için aynı arşivi kullanıyor. Arşivde yalnızca iki çalıştırılabilir dosya dropbox ve dropboxd'dır, daha sonra LD_LIBRARY_PATH öğesini ayarlayan ve ilkini başlatan sadece bir kabuk betiğidir.
xx

Hmm, benim uzak sunucu etti bağlanmıştır. Doğru hatırlıyorsam lynx, uzaktaki makineye (her zaman X11 iletmeyi kullanarak) grafik bir tarayıcı başlatmalı ( yapamam) ve makineyi bu tarayıcıyı kullanarak bağlamak zorunda kaldım . Bunu yapmayı ve ~/dropbox-dist/dropboxtekrar başlatmayı deneyin . En azından çalıştığını doğruladık, bahsettiğin arka plan grafiksel ve yerel ekranın sağ tarafında mı görüntüleniyor? Bu nedenle, sunucunuzu hesabınıza bağladıktan sonra, cevabımda açıklandığı gibi yapılandırabilmelisiniz.
terdon

Bağlandı, sıfırdan başlamak için ~ / .dropbox yapılandırmasını sildim. "Bahsettiğiniz arka plan programı grafik ve yerel ekranınızda değil mi?" Hayır, sunucuda çalıştırıldığında grafiksel değildir. X11 iletiminin açık olmasına rağmen, X11'in bulunmadığını tespit etmeli ve yalnızca komut satırı moduna girmelidir.
xx

0

Aradığın şey bu olabilir:

GUI'siz bir Linux sunucusunda Dropbox kurma

Buradaki prosedürleri tanımlamak yerine sadece bir URL attığım için özür dilerim. Ben işteyim ve şu an daha fazla çalışamıyorum. Daha sonra cevabını genişletebilirim, sadece bu değerli URL’yi çözümünüzle kaybetmek istemiyorum.


0

TechRepublic’in, bu sorunu çözdüğünü iddia eden ve GUI'siz bir Linux sunucusunda Dropbox’ı kurduğu bir sayfası vardır :

… Dropbox'ı yönetmek ve [Linux, Windows ve OS X] için ayarlamak üzere sağlanan GUI araçları vardır. Peki GUI'siz bir Linux bilgisayarını bağlamak istiyorsanız ne olur? Dropbox'ın GUI olmadan çalışmasını sağlamak, dosyaları kafasız çalışan sunucularla veya bir kullanıcı hesabının her zaman oturum açamayacağı yerlerde senkronize etmenize olanak sağlamak için biraz çalışmanız mümkündür.

    ︙

Başlamak:

# 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 bit istemciyi istiyorsanız kullanın . Bu, Dropbox yükleme dosyalarımız için geçici bir dizin oluşturur ve iki gerekli python komut dosyasını indirir: dbmakefakelib.py bu, GUI kitaplıklarının sahte saplama kopyaları oluşturur; böylece dropboxd arka plan programı başlar ve dbreadconfig.pybu, dropbox yapılandırma bilgilerini görüntüler.

Hangi kullanıcının Dropbox istemcisini çalıştıracağına karar verin; bu özel bir kullanıcı olabilir veya normal bir kullanıcı olabilir. Ayrıca sistemde çalışan birden fazla Dropbox örneği de bulundurabilirsiniz, bu nedenle birden fazla kullanıcı için ayarlamayı tercih edebilirsiniz (her kullanıcı yalnızca bir Dropbox örneği çalıştırabilir). Bu örnek için, bu Dropbox istemcisini çalıştıracak özel bir “dropbox” kullanıcısı yaratmış olacağız.

# 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 betiği gcc gerektirir, bu yüzden sistemde gcc kurulu olmalıdır. Bu, GUI kütüphanelerinin sahte saplama kopyalarını oluşturur, böylece dropboxd başlayacaktır. Sonunda, dropboxd'nin başladığını görebilirsiniz; komut dosyasından çıkmak için Ctrl+ tuşuna basın C. dropboxd hala arka planda çalışıyor olmalı:

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

Şimdi bu dropbox çalışıyor, onu mevcut bir hesaba bağlamamız gerekiyor:

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

Host_id'yi yukarıdan al. Dropbox web arayüzüne giriş yapın ve giriş yaptıktan sonra şu URL'yi manuel olarak ziyaret edin:

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

[HOST_ID]Dbreadconfig.py çıktısı olan host_id ile değiştirin . Bunu yaptığınızda, Dropbox sitesi size yeni bir bilgisayarı başarıyla bağladığınızı söyleyecektir. Hesap ayarlarınıza ve ardından Bilgisayarlarım'a gidin, listelenen yeni bilgisayarı göreceksiniz.

Dbmakefakelib.py uygulamasının başladığı dropboxd işlemini öldürmediyseniz, dosyaları zaten Dropbox'tan ~ / Dropbox / dizinine indirdiğini göreceksiniz.

Dropboxd arka planını açılışta arka planda başlatmak için, /etc/rc.d/rc.local init betiğinize aşağıdakini ekleyebilirsiniz:

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

Bu, arka planda dropboxd'ı kurulduğu kullanıcının yetkileri ile başlatacaktır (bu durumda kullanıcı “dropbox” dır). Sistem genelinde bir intscript yapmak isterseniz, Fedora / Red Hat ve Debian / Ubuntu için initscripts dahil, kullanabileceğiniz bazı örneklerin bulunduğu Dropbox wiki'sini ziyaret edin. Ayrıca, DJB'nin daemontools altında çalışan Dropbox'ın nasıl kurulacağına dair örnekler de var.


Bu bağlantıyı gönderdiğiniz için teşekkür ederiz MestreLion ⁠⁠ .
Scott

0

Ben sadece aynı soruyu çarptım ve çözebildim

  1. Dropbox web kullanıcı arayüzü ile hesabın bağlantısını kaldırma:

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

  2. ~/.dropboxÇalışan kullanıcı dizini kaldırılıyor dropboxd.

    rm -r ~/.dropbox
    
  3. ~/DropboxDizini de temizlemeniz gerekebilir .

İlk adım gerekli olmayabilir, ancak çıkarmadan önce bunu daha önce yaptım ~/.dropbox, bu da nihayetinde tekrar kurmama izin verdi.

Unutmayın cdDropbox kök klasör olmasını istediğiniz dizine. Daha sonra benim için iyi çalıştı.


Merhaba, SuperUser'a hoş geldiniz. Cevabınızı detaylandırabilir misiniz? Özellikle, kullanıcının ne yapması gerektiğine dair daha ayrıntılı bilgi vermek ister misiniz?
Servis Müdürü

0

Ben de aynı sorunu yaşadım. Bir ubuntu sunucusundaki büyük ikincil sabit diski senkronize etmek için dropbox kullanmak istedim. Yaptığım, dropbox'ı kurmadan önce ikincil sabit diskten ana dizine bir bağlantı oluşturmamdı.

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

Dropbox'ı yalnızca yukarıdaki adımı tamamladıktan sonra kurun.

Bu yolla, Home dizinindeki Dropbox sembolik bağlantıdır ve gerçek klasör, herhangi bir yerden linklendiğiniz yerdir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.