Synchronizuj dowolne pliki z serwerem

12

Szukam sposobu na utrzymanie pliku (keepass .kdb) na moim Droid2 w synchronizacji z jednym na serwerze.

  • To tylko plik w systemie plików - nie kontakty, kalendarz itp.
  • Potrzebuję dwukierunkowego, a nie tylko pchania lub ciągnięcia. Jeśli zmiany na serwerze, pobierz go, jeśli zmiany na Androidzie, prześlij. Tak, może to spowodować konflikty wymagające rozwiązania.

Używam Unison do osiągnięcia tego między komputerami, ale nie ma klienta Unison dla Androida. Znalazłem machanie ręką na temat instalacji OCaml na Androidzie i uruchamiania Unison na tym, ale mam nadzieję na coś natywnego.

Botsync brzmi obiecująco, ale jest jednokierunkowy - podczas tworzenia konfiguracji wybierasz, czy chcesz ją przesłać, czy pobrać.

Widziałem sugarsync, ale biorąc pod uwagę, że jest to mój plik KeePass, wolałbym zachować go na własnym serwerze.

Jason Viers
źródło
Chciałem zasugerować sugarsync ... ale rozumiem obawy
Daniel
Spójrz na sparkleshare.org - relatywnie nowy projekt, klient Androida działa, jak sądzę.
Sparx

Odpowiedzi:

3

Możesz rozważyć inną opcję tutaj, jeśli chcesz użyć tego w bazie danych haseł KeePass. To nie zadziała w przypadku innych wrażliwych materiałów, ale ponieważ poprosiłeś specjalnie o KeePass, oto co robię:

  • Chroń bazę danych hasłem (zakładam, że już masz) i kluczem. Zapewni to uwierzytelnianie dwuskładnikowe („coś, co wiesz” - hasło i „coś, co masz” - klucz). Bazę danych haseł można odblokować tylko wtedy, gdy oba elementy są na swoim miejscu.
  • Skopiuj klucz do lokalnej pamięci wszystkich swoich urządzeń i nadaj mu niepozorną nazwę. Najlepiej umieścić go w zatłoczonym katalogu, w którym mógłby wyglądać jak plik konfiguracyjny lub jakiś losowy plik szumu utworzony przez program.
  • Prześlij swoją bazę danych do zewnętrznej usługi pamięci masowej (korzystam z Dropbox, ale równie dobrze działałyby inne opcje). Jest rzeczą oczywistą, że usługa powinna mieć klienta z Androidem, jeśli chcesz go używać na swoim urządzeniu.

  • NIE przesyłaj tam swojego klucza - użyj innej metody, aby skopiować go na potrzebne urządzenia. W szczególności Dropbox przechowuje kopię plików, które przesyłasz, a następnie usuwasz przez co najmniej tydzień w celu wykonania kopii zapasowej (muszę przyznać, że to całkiem wygodne), ale jeśli twój klucz jest już na serwerze, nie jest bezpieczniejszy niż normalne hasło - chroniona baza danych.

  • Skonfiguruj klientów KeePass, aby nie pamiętali lokalizacji klucza (pamiętanie lokalizacji bazy danych jest w porządku).

W ten sposób możesz przesłać swoją bazę danych do losowej witryny, a nawet jeśli hasło zostanie z jakiegoś powodu naruszone (np. Rejestratory klawiatury), możesz korzystać z bazy danych tylko z urządzeń, które mają klucz ORAZ teraz, który plik jest faktycznie kluczem .

Dla wygody możesz chcieć mieć uwierzytelnianie tylko za pomocą klucza na urządzeniu mobilnym (bezpieczne hasła są nużące podczas pisania na urządzeniu mobilnym i oczywiście nie chcesz tutaj używać krótkich i łatwych). Ale odradzam to, ponieważ w tym przypadku bezpieczeństwo jest nawet niższe niż baza danych chroniona hasłem - zamiast hasła, które masz w głowie, używasz „hasła” (pliku klucza), który znajduje się na twoim urządzeniu .

KeePass nie daje żadnych wskazówek, czy wymaga klucza, hasła, czy obu tych elementów - co działa na Twoją korzyść.

Martin Tapankov
źródło
+1 za dobre informacje, zgadzam się, że hasło i plik klucza powinny być „wystarczające” dla pliku keepass. Pozostawiam pytanie bez odpowiedzi w nadziei, że w przyszłości pojawi się odpowiedź „Oto program, który synchronizuje”. Dzięki!
Jason Viers
4

Być może znalazłeś coś, z czego jesteś teraz zadowolony, ale skompilowałem plik binarny unison, który działa na Androidzie - jest to możliwe przy użyciu instrukcji machania ręką, o których mówisz - użyłem ich do kompilacji źródła Linux w Ubuntu 12.10 używając Androida NDK i po kilku zmianach w kodzie, teraz działa. Postępuj zgodnie z instrukcjami na https://sites.google.com/site/keigoattic/ocaml-on-android, a wtedy będziesz musiał zrobić kilka rzeczy. W źródłowym unisonie znajduje się plik o nazwie pty.c - znajdź następującą sekcję:

// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif

i komentuj define HAS_OPENPTY 1jak pokazano. Musisz także otworzyć ubase / util.ml i edytować:

let homeDir () =
  System.fspathFromString "/Your path here"

Skomentuj stąd:

    (if (osType = `Unix) || isCygwin then
       safeGetenv "HOME"
     else if osType = `Win32 then
(*We don't want the behavior of Unison to depends on whether it is run
  from a Cygwin shell (where HOME is set) or in any other way (where
  HOME is usually not set)
       try System.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
       with Not_found ->
*)
       try System.getenv "USERPROFILE" (* Windows NT/2K standard *)
       with Not_found ->
       try System.getenv "UNISON" (* Use UNISON dir if it is set *)
       with Not_found ->
       "c:/" (* Default *)
     else
       assert false (* osType can't be anything else *))

... tutaj

Następnie będziesz musiał edytować Makefile.Ocaml

   CWD=$(shell pwd)
    EXEC_EXT=
    WINOBJS=
    SYSTEM=generic
    # openpty is in the libutil library
    ifneq ($(OSARCH),solaris)
      ifneq ($(OSARCH),osx)
      #  CLIBS+=-cclib -lutil
      endif
    endif
    buildexecutable::
        @echo Building for Unix
  endif
endif

I skomentuj # CLIBS+=-cclib -lutiljak pokazano.

I o ile pamiętam, wszystko działało. Drugim krokiem po skompilowaniu jest zamontowanie partycji systemowej Android jako zapisywalnej i skopiowanie unison do folderu / system, w którym znajdują się wszystkie pozostałe polecenia powłoki.

Mam nadzieję, że komuś się to przyda ... Straciłem dużo snu, kompilując go.

ChC
źródło
2

Robię dokładnie to, o co prosisz z FolderSync. To bardzo ładne oprogramowanie, z dużą ilością opcji i funkcji. Używam go jako osobistej alternatywy dropbox przy użyciu SFTP przez SSH z plikiem klucza do uwierzytelnienia. Możesz nawet skonfigurować automatyczne wykrywanie zmian w lokalnych replikach i uruchamianie natychmiastowego przesyłania. Na telefonie używam go do przesyłania zdjęć na mój serwer, gdy tylko je wezmę, i działa to idealnie.

RB12
źródło
2

Śledziłem także katalog główny kompilacji krzyżowej, jak wskazano w odpowiedzi ChC

Wydałem UnisonSync, który pozwala unisończyć bez zajmowania się wierszem poleceń (i bez rootowania) w Google Play:

Od sprawdzonej koncepcji, która była szybko uruchamiana, po aplikację gotową do produkcji, zajęło to znacznie więcej czasu, niż się spodziewano, ale teraz działa i jest bardzo przydatne do synchronizacji moich publikacji i repozytorium arkuszy danych.

Dan
źródło
1
Prawdopodobnie w pewnym momencie wkrótce skonsoliduję instrukcje dotyczące kompilacji krzyżowej i umieszczę gdzieś binarne unison / dropbear dla tych, którzy wolą korzystać z wiersza poleceń.
Dan
1

Używam unisona, montując Androida za pomocą sshfs. Jako serwer ssh używam SSHDroid .

Ale ostrzegam, unison z sshfs jest naprawdę wolny. Chociaż z jednym plikiem nie powinno to mieć znaczenia.

Volker
źródło
0

Nie znam nic, co by to zrobiło. Istnieje wiele aplikacji do synchronizacji plików, ale wszystkie te, które widziałem, są jednokierunkowe lub polegają na tym, że użytkownik ręcznie zsynchronizuje plik z telefonu do chmury. To, co zamierzasz zrobić, powinno być możliwe dzięki interfejsowi API Dropbox, ale nie wiem, czy chcesz utworzyć własną aplikację, która będzie pilnować określonych plików, które chcesz zsynchronizować

FoamyGuy
źródło
Zastanawiałem się nad niestandardową trasą aplikacji, ale jeśli to zrobię, będzie to pisanie natywnego klienta Unison, a nie dropboxa (więc pozostanie na moim serwerze).
Jason Viers
0

Wyszukiwanie rynku ujawniło aFileSync, który twierdzi, że synchronizuje pliki przez FTP, a także obsługuje automatyczne synchronizowanie plików. Musisz samodzielnie uruchomić serwer FTP.

Istnieje również SK Sync , ale użytkownicy zgłosili z nią mieszane wyniki.

Oczywiście przed wypróbowaniem dowolnego z tych programów / aplikacji należy wykonać kopię zapasową plików zarówno na komputerze / serwerze, jak i na urządzeniu z Androidem.

Sparx
źródło
aFileSync brzmi tak, jakby miał wszystkie zachowania, które chcę. Recenzje są trochę przerażające i będę musiał skonfigurować serwer FTP, aby zobaczyć, jak to idzie.
Jason Viers
-1

Do synchronizacji plików z Androida jest nowa wersja mojej aplikacji BotSyncPlus . Kiedy pisałeś o BotSync, była tylko jedna konfiguracja do wysyłania lub pobierania. Ale teraz dostępna jest nowa wersja BotSyncPlus, w której jest wiele konfiguracji.

Igor Mino
źródło