Dlaczego nie zsynchronizować folderów poza domem z Ubuntu One?

19

Długo zajęło mi odkrycie, że dzięki Ubuntu One mogę synchronizować tylko foldery w folderze domowym. We wszystkich innych folderach opcja Ubuntu One jest dostępna w preferencjach, ale rzeczywiste akcje są wyszarzone.

Ubuntu One FAQ jest całkiem jasne, że:

Nie, obecnie możesz tylko synchronizować foldery w swoim katalogu domowym.

Ale tak naprawdę zastanawiam się, dlaczego i czy to się zmieni i czy jest jakaś sztuczka (inna niż ustawienie mojego domu /)?

Osobiście nie mam żadnych ważnych danych w moim katalogu domowym poza konfiguracjami programu. Wszystkie dokumenty, zdjęcia i muzyka znajdują się w folderze o nazwie, /dataktóry faktycznie znajduje się na innej partycji. To znacznie ułatwia, gdy chce się ponownie zainstalować Ubuntu.

par
źródło
Nie kupuję „nie chcesz synchronizować specjalnych partycji”. Nie sądzę, żeby to był dobry powód, aby nie synchronizować rzeczy poza katalogiem domowym. Istnieją pewne foldery / katalogi, których U1 nigdy nie powinien synchronizować. / etc, / home, / boot na przykład w systemie Linux; \ windows, \ program files on Windows. Mam dokładnie tę samą sytuację. Nie przechowuję niczego w moim katalogu domowym ani w katalogu Dokumenty na laptopie z systemem Windows. Gdybym to zrobił, miałbym tam kilka rzeczy o wartości GB. Wolę zamiast tego użyć kilku innych lokalizacji.

Odpowiedzi:

17

To się nie zmieni, przynajmniej w dającej się przewidzieć przyszłości (i na tej podstawie mogę przewidzieć kilka lat w przyszłość). Umożliwienie użytkownikom wybrania dowolnych folderów poza domem do synchronizacji z Ubuntu One, które potencjalnie mogą synchronizować między wieloma różnymi komputerami, otwiera wiele problemów związanych z użytecznością obejmujących przypadek użycia, który, szczerze mówiąc, nie jest tak powszechny.

Jednym z problemów, które pamiętam z głowy, jest to, że jeśli spróbujesz zsynchronizować punkt montowania urządzenia wymiennego (i sporo osób spróbuje to zrobić), po usunięciu urządzenia syncdaemon usunie wszystko; aby działał poprawnie, syncdaemon musiałby wiedzieć o urządzeniach, wykrywać ich usuwanie i takie tam. Dość duży wysiłek i duży potencjał koszmarów użyteczności.

Innym problemem jest, jeśli starają się zsynchronizować folder ze specjalnymi uprawnieniami, własności lub typów plików, w tym: myśleć /etc/, /tmp/albo /dev/jako jedne z najgorszych przypadkach. Lub każdy folder, którego naprawdę nie posiadasz. Możemy po prostu zabronić synchronizacji folderów, których nie posiadasz, ale wiemy, że niektórzy ludzie używają syncdaemona jako root (pomimo naszych ostrzeżeń).

Obejściem tego problemu byłoby zamontowanie (za pomocą /etc/fstab, więc masz pewność, że partycja jest montowana za każdym razem - w przeciwnym razie ryzykujesz utratą zsynchronizowanych danych) /datafolder do domu. Możesz po prostu przejść /datado ~/datalub, jeśli masz rzeczy, które mają /datazakodowaną ścieżkę (całkiem prawdopodobne), lub jeśli jesteś już przyzwyczajony do /datasiebie (również całkiem prawdopodobne), dowiązać symbolicznie lub powiązać mount /dataz punktem montowania w domu. Jeśli nie chcesz w ogóle oglądać go w domu, po prostu zrób to ~/.data.

Chipaca
źródło
Myślę, że przypadek użycia nie jest teraz zbyt powszechny, ponieważ nie ma przyjemnego interfejsu do synchronizacji dowolnych folderów. Zgadzam się, że nie jest to łatwe, ale gdy problemy inżynieryjne i użyteczności zostaną rozwiązane, a przyjemny intuicyjny interfejs stanie się dostępny, jestem pewien, że wiele osób z niego skorzysta, ponieważ wiele osób ma wiele komputerów.
Aras,
SpiderOak, Wuala i Bitcasa obsługują synchronizację dysków zewnętrznych w systemie Linux, więc nie można rozwiązać tego problemu. Wspomnieć, że syncdaemonusunie wszystko, gdy napęd jest usuwany - prawda chłopaki że autorzy z syncdaemon? Nie możesz go zaprogramować, aby nie robił tego dla dysków zewnętrznych?
BlueRaja - Danny Pflughoeft,
Tak, oczywiście, że możemy. Jeszcze tego nie zrobiliśmy.
Chipaca
W systemie Windows z zaawansowanymi użytkownikami, <del> głupie </del> niemądrze jest zabraniać zmiany tego. Firmy i rozsądne konfiguracje domowe mają dyski systemowe często tak różne, jak dyski danych w systemie Windows. Na przykład. Nigdy nie trzymać niczego w c:\users\<myusername>, trzymam wszystkie osobiste i wszystkie inne dane na osobnej partycji na osobnym dysku twardym. Ale w Windows montowanie i łączenie nie jest tak łatwe jak w Linuksie we wszystkich wersjach, więc nie można po prostu montować ani łączyć tych dysków lub folderów w folderze domowym. Uważam za całkowicie szalone, że nie mogę zmienić tej lokalizacji. Nawet Dropbox na to pozwala.
n611x007
1
Użytkownicy zaawansowani @naxa mogą zmienić lokalizację swojego katalogu domowego na inny dysk (co, jeśli faktycznie przechowujesz tam wszystkie swoje dane osobowe, już to zrobiłeś), więc ten konkretny punkt jest dyskusyjny.
Chipaca
4

Udało mi się sprawić, że to zadziałało, używając mount binda. Linia /etc/fstabwygląda następująco:

/mnt/s1/Audio   /home/daniel/Music      bind    defaults,bind   0       0

Oczywiście będziesz potrzebować uprawnień do zapisu do danego folderu. Możliwe, że może być konieczne posiadanie plików, nie jestem pewien.

Daniel Murray
źródło
3

Podejrzewam, że powodem są prawa. Zauważysz, że nie możesz łatwo edytować żadnego z plików poza katalogiem domowym? Jest to ogólna funkcja bezpieczeństwa Linuksa i podejrzewam, że programiści Ubuntu One (całkiem słusznie) uważają, że przeciętny użytkownik zatrzyma wszystkie swoje pliki w katalogu domowym, gdzie demon może łatwo uruchomić bez podniesionych uprawnień.

Na marginesie o twojej konfiguracji, wszystko jest kwestią preferencji, ale trzymam cały / home / na oddzielnym dysku / partycji. Oznacza to, że pomiędzy ponownymi instalacjami musisz przejść i usunąć wszystkie ukryte foldery / pliki, aby uzyskać czystą instalację, ale da ci to przewagę całkowicie macierzystego katalogu domowego z prawami ubuntuone itp. - to tylko myśl.

thomasmichaelwallace
źródło
2
och, i właśnie wypróbowałem jedno z bardziej oczywistych obejść (łącza sym) i ubuntuone nie miał z tego żadnego ...
thomasmichaelwallace
1

W dwóch słowach: Użyj Dropbox.

Przyczyny wymienione przez @Chipaca mogą być trudne do pokonania, ale Dropbox jakoś sobie poradził. To prawda, że ​​to rozwiązanie nie jest open source, ale dopóki ludzie z Ubuntu One nie rozwiążą niektórych poważnych problemów z użytecznością (jest to jeden z nich), wielu użytkowników nie będzie mogło korzystać z Ubuntu One.

nbubis
źródło
0

Mam bardzo podobną konfigurację pod Ubuntu 12.04. Mam partycję NFTS z moją biblioteką muzyczną, która jest widoczna zarówno dla systemu Windows 7, jak i Ubuntu. Chciałem móc zsynchronizować ten katalog z Ubuntu One bez konieczności jawnego przenoszenia całego katalogu do mojego katalogu domowego (wydaje się to rozsądnym żądaniem, prawda?).

Moim rozwiązaniem było po prostu zamontowanie partycji współdzielonej w moim katalogu domowym przy każdym uruchomieniu systemu Ubuntu. To wymagało dwóch dość prostych kroków.

  1. Zainstaluj i użyj, pysdmaby upewnić się, że partycja poprawnie zamontuje się podczas uruchamiania (niekoniecznie w katalogu domowym, tylko gdzieś w systemie plików). Możesz też /etc/fstabsamodzielnie zmodyfikować plik, jeśli masz wystarczającą pewność. Jako całkiem nowy użytkownik uznałem rozwiązanie pysdm za bardziej proste.

    Tak czy inaczej, wykonaj kopię zapasową /etc/fstabpliku przed wykonaniem tego kroku! (w razie czego!)

    sudo cp /etc/fstab /etc/fstab.old (na przykład)

    Jeśli coś pójdzie nie tak, zawsze możesz przywrócić stary plik i wrócić do pierwszego:

    sudo cp /etc/fstab.old /etc/fstab

    W pysdmGUI wybierz partycję docelową i naciśnij przycisk „Asystent”. Pamiętaj, aby wybrać opcję „Właściciel urządzenia może go zamontować”. Zapewni to, że będziesz mógł ponownie zamontować w swoim katalogu domowym za pomocą Upstart. W moim przypadku ustawiłem sda4partycję na /media/sda4/.

  2. Ogólnie zachowanie Upstart jest definiowane przez pliki w /etc/init/katalogu. Aby zamontować nową partycję (dla mnie /media/sda4) w moim katalogu domowym, zdefiniowałem /etc/init/mount-mydirs.confplik zawierający:

    start on runlevel [2345]
    task
    exec /bin/mount-mydirs`
    

    Pierwszy wiersz mówi Upstartowi, aby wykonał zadanie po normalnym uruchomieniu. Drugi wiersz mówi Upstartowi, że zadanie należy wykonać raz (nie jako zadanie na czas nieokreślony lub cykliczny), a ostatni wiersz nakazuje wykonanie skryptu /bin/mount-mydirs(z uprawnieniami roota).

    Plik `/ bin / mount-mydirs 'wygląda następująco:

    mount --bind /media/sda4/ /<home directory>

    (Opcja --bind pozwala na dostęp do plików zarówno z oryginalnego punktu podłączenia, jak i nowego).

Pisząc to, słucham mojej w pełni zsynchronizowanej, nowo zamontowanej biblioteki muzycznej !!

Dave B.
źródło