Dropbox - backup spod konsoli

  • Data: 2014

Ludzie dzielą się na tych co robią backupy i na tych co będą je robić...

Powyższe stwierdzenie jest tak prawdziwe jak i bolesne dla tych co przeżyli utratę cennych dla siebie danych. Kopia zapasowa danych powinna być nie tylko oczywistą oczywistością dla zwykłych użytkowników nie mówiąc już o ludziach z branży IT tj. administratorów czy programistów.

Kopię zapasową możemy trzymać na swoim lokalnym komputerze, jednak nie jest to najbezpieczniejsze rozwiązanie. Dyski twarde mają to do siebie, że lubią się psuć, a rzadko się zdarza posiadać w domu macierz RAID. Możemy zostać okradzeni lub po prostu utracić dane gubiąc nośnik lub urządzenie przechowujące dane. Nie wspominając już o przypadkowym usunięciu zawartości dysku czy działalności wirusa komputerowego.

Zawsze możemy nagrywać na inne nośniki (DVD, pendrive) z kolei to rozwiązanie nie jest zbyt wygodne.

Jeśli nie potrzebujemy robić backupu o rozmiarze kilkudziesięciu GB, z pomocą przychodzą darmowe rozwiązania typu e-dyski umieszczone w coraz bardziej popularnej "chmurze". Aktualnie najpopularniejszą pozycją jest Dropbox oraz zdobywające coraz większą popularność rozwiązanie od Google: Google Drive i od Microsoftu: Sky Drive. Ja zdecydowałem się na Dropboxa, główanie z powodu jego wieloplatformowośći (m.in. Linux/Mac/Windows/Android) oraz dobrego natywnego klienta pod konsolę.

Czym jest Dropbox?

Nie jest to tylko typowy e-dysk jakie już wcześniej pojawiały się na rynku. Dropbox jest usługą tworzenia kopii zapasowej jak i również do synchronizacji plików, katalogów między wieloma urządzeniami na których zainstalowaliśmy odpowiedniego klienta. Zsynchronizowane już pliki i foldery na naszym koncie możemy udostępniać znajomym upubliczniając poszczególne pliki czy całe katalogi w wyniku czego generowany jest unikalny link (dobry sposób na omijanie ograniczeń objętości załączników mailowych).
Przydatną funkcją jest również możliwość przywracania wcześniejszych wersji plików. Z ciekawszych rzeczy jest jeszcze galeria zdjęć z technologii Ajax.
Interfejs webowy jest całkiem przyjemny w użytkowaniu. Wykorzystuje technologię drag-and-drop, umożliwiając przenoszenie plików przeciągając ikony z dysku na przeglądarkę. W WebUI Dropbox-a zaimplementowano obsługę skrótów klawiszowych np. CTRL +A, CTRL +C, CTRL +V, przyciski: DELETE, F2 czy ENTER.

Pojemność konta Dropbox

Na początku po założeniu konta bezpośrednio na stronie otrzymujemy 2 GB darmowej przestrzeni. Możecie to zrobić za pomocą tego LINKA, dzięki czemu otrzymacie (ja również) bonusowe 500MB na start. Dropbox oferuje nam kilka sposobów na zwiększenie pojemności naszego konta, oto one:

  • 3 GB - Camera Upload czyli automatyczne zgrywanie zdjęć z zewnętrznego źródła (np. aparat, telefon, pendrive...). Żeby skorzystać z tej opcji musimy mieć aplikację desktopową. W skrócie musimy wrzucić 3 GB zdjęć po czym możemy je skasować i cieszyć się dodatkową powierzchnią. Więcej szczegółów tutaj: Camera Upload Dropbox
  • 250 MB - dostaniemy po przejściu tutorial-a "getting started"
  • 375 MB - za trzy czynności związane z Facebookiem, Twitterem
  • 125 MB - Tell us why you love Dropbox
  • do 16 GB ! - za każdą osobę 500 MB, która zarejestruje się z naszego reflinka
  • ...czyli w sumie blisko 22 GB darmowej przestrzeni

Instalacja Dropboxa na systemie Linux:

  • Oczywiście musimy mieć już konto na Dropboxie
  • Pierwszym krokiem będzie pobranie paczki zgodnej z naszą architekturą procesora:
  • #przechodzimy do katalogu domowego:
    cd ~
    # dla 32bit:
    wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
    dla 64bit:
    wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
    
  • Przechodzimy do katalogu: .dropbox-dist i uruchamiamy: ./dropboxd. Będzie się pojawiał komunikat informujący, że nasz komputer jest nie przypisany do konta.
  • Please visit https://www.dropbox.com/cli_link?host_id=1e6ee43b6519a6e4144621e8c8d48380 to link this machine.

    Musimy zalogować się poprzez ten link. Jeśli nawet jest to zadalna maszyna to nie ma znaczenia z jakiego komputera się zalogujemy. Po poprawnym zalogowaniu się ukaże się nam komunikat jak również zostanie utworzony katalog: ~/Dropbox. This computer is now linked to Dropbox. Welcome Dominik
  • Następną czynnością jest pobranie nakładki, dzięki której bardzo prosto będziemy korzystać z Dropboxa:
  • #utwórzmy jakiś katalog np. drop:
    mkdir -p ~/dorp
    #pobieramy paczkę:
    wget -O ~/drop/dropbox.py "https://www.dropbox.com/download?dl=packages/dropbox.py"
    #nadajemy prawo wykonywalności:
    chmod +x ~/drop/dropbox.py
    

Krótki opis dorpbox.py:

Na początek proponuję zapoznać się z pomocą: ~/drop/dropbox.py help

status       get current status of the dropboxd
 status       podaje aktualny stan dropboxd
 help         to chyba jasne
 puburl       wyświetla adres url upublicznionych plików
 stop         stop dropboxd
 running      sprawdza czy działa dropbox
 start        start dropboxd
 filestatus   aktualny stan synchronizacji jednego lub więcej plików
 ls           wyświetla zawartość katalogu oraz stan jego synchronizacji
 autostart    uruchomienie przy zalogowaniu
 exclude      wyłączenie katalogu dla katalogów
 lansync      włącza lub wyłącza tryb LAN

Backup i synchronizacja

Sprawa kopii zapasowej jest banalnie prosta. Podczas instalacji Dropbox tworzy katalog ~/Dropbox/ w którym umieszczamy pliki a one automatycznie zostają ściągane na serwery dropboxa. I tak sprawa wygląda na Windowsach, w przypadku Linuxa nie ma potrzeby powielać już istniejących danych na dysku ( choć są już programy na winde dzięki którym nie musimy wszystkiego kopiować do katalogu Dropbox). W naszym przypadku wystarczą dowiązania symboliczne dzięki którym nie marnujemy miejsca na dyskach i zarazem kolejny backup jest dużo wygodniejszy ponieważ nie ma potrzeby nadpisywania zmodyfikowanego już pliku.
Załóżmy sytuację, w której użytkownik ma taką strukturę katalogu:

stuff/
|-- kat1
|   `-- plik1.txt
|-- kat2
`-- kat3
    |-- plik3.txt
    `-- plik43.txt
Chcąc wykonać kopię zapasową katalogu stuff uruchamiany dropboxa i dowiązanie symboliczne:
ln -s /home/user/stuff /home/user/Dropbox

Jeśli jest to duża poracja danych możemy sprawdzić postęp: ~/drop/dropbox.py status
Po udanej operaji doknując modyfikacji któregoś z plków wystarczy ponownie uruchomić dropboxa a reszta zrobi się sama.

Synchronizacja selektywna

Jeśli do naszego konta przypisane jest kilka urządzeń, to nie zawsze chcielibyśmy mieć wszystkie zsynchronizowane dane na wszystkich urządzeniach. Standardowo Dropbox właśnie tak działa, synchronizując wszystkie katalogi ze wszystkimi urządzeniami. Jeśli nie chcemy katalogu ze zdjęciami to wystarczy wykluczyć jego synchronizację, zarazem zostanie on usunięty z tego konkretnego komputera.

~/drop/dropbox.py exclude add /home/user/Dropbox/Camera\ Uploads/
Excluded:
Dropbox/camera uploads

# wyświetlenie wykluczonych z synchronizacji katalogów:
~/drop/dropbox.py exclude list
Excluded:
Dropbox/camera uploads
Dropbox/winda
Dropbox/android

# ponowne przywrócenie synchronizacji:
~/drop/dropbox.py exclude remove /home/user/Dropbox/Camera\ Uploads/

Na koniec jedna uwaga, powyższy tekst nie dotyczy pojedyńczych plików !

LAN Sync - synchronizacja po sieci lokalnej

Jesli posiadamy kilka urządzeń z zainstalowanym Dropboxem w domu połączone w sieć lokalną to warto korzystać ze synchronizacji po sieci LAN ,transfer będzie dużo większy. W linuxie lansync jest domyślnie aktywowany, z tego co pamiętam w kliencie na Windowsa jest odwrotnie.

# aktywacja lansync:
~/drop/dropbox.py lansync y

# dezaktywacja lansync:
~/drop/dropbox.py lansync n

# sprawdzenie czy lansync działa (co jakiś czas powinien wyświetlać się LANSync):
watch -n 1 '~/drop/dropbox.py status
# drugi sposób
netstat -tunap|grep dropbox
tcp        0      0 192.168.1.6:60420	    192.168.1.2:17500       ESTABLISHED 11225/dropbox
tcp       38      0 192.168.1.6:57880       199.47.216.174:443      CLOSE_WAIT  11225/dropbox
tcp        0      0 192.168.1.6:36301       199.47.217.177:443      ESTABLISHED 11225/dropbox
tcp        0      0 192.168.1.6:17500       192.168.1.2:3683        ESTABLISHED 11225/dropbox

Jeśli pomimo włączonej opcji lansync nie widzimy, żeby synchronizacja odbywała się po siecie LAN istnieje możliwość blokowania przez firewall. Dropbox potrzebuje otwartego portu 17500 TCP/UDP. Jeżeli firewall mamy oparty na iptables dopisujemy dwie reguły (to jest tylko przykład, możecie mieć chociażby inne nazewnictwo kart sieciowych np. eth2):

iptables -A INPUT -i eth0 -p tcp --dport 17500 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 17500 -j ACCEPT

Jak już wcześniej pisałem Dropbox domyślnie ma uruchomioną usługę LANsync, co się wiąże z rozgłaszaniem co 30 sekund pakietów UDP. W sytuacji, gdy Dropbox zainstalowany jest na zdalnej maszynie (serwer dedykowany, VPS) nie ma potrzeby atakować sąsiadów pakietami UDP.

Udostępnianie i współdzielenie plików

Udostępnianie plików jest bardzo proste, wystarczy kopiować plik do specjalnego katalogu /home/user/Dropbox/Public, a następnie generujemy link wydając polecenie: ~/drop/dropbox.py puburl ~/Dropbox/Public/plik. Udostępnianie plików w skrypcie dropbox.py nie zostało zaimplementowane, tutaj trzeba się posłużyć interfejsem www lub graficznymi klientami. Więcej o współdzieleniu tutaj: https://www.dropbox.com/pl/help/167.

Powrót »