Get Adobe Flash player

backupWitam już nieco sylwestrowo. Co prawda w sieci (bo choć by i na samym Dropbox’e) można znaleźć jak zainstalować Dropbox’a na systemach Linux (Debian, Ubuntu, Fedora i innych), ale w tym artykule pokaże wam jak szybko wykorzystać to narzędzie do robienia w pełni automatycznych kopi zapasowych swojego serwera tak, aby było to wygodne i co najważniejsze działało. Oczywiście do robienia kopi zapasowych z zasady są inne narzędzia jak np. rsync (dobry, sprawdzony i znany na całym świecie tyle tylko że trzeba mieć jeszcze gdzie te kopie wysyłać), ale gdy dla przykładu mamy ograniczony budżet i nie zbyt wiele danych (bo jest to mały prywatny serwer gdzie trzymamy zaledwie kilka GB danych np. stron www) to Dropbox sprawdzi się świetnie. Tak więc do dzieła…

1. Rejestrujemy konto

Na start otrzymamy 2 GB, a z tego linka + 500MB czyli w sumie 2,5GB. Po rejestracji i zalogowaniu otrzymamy możliwość zwiększenia swojego konta w darmowej opcji do ok. 16GB (poprzez, wykonanie kilku kroków – czytanie poradnika, polecanie znajomym, udostępnienie na Facebook. Twitter i inne, ale to już zostawiam do doczytania we własnym zakresie bo „promocje” (jeśli tak to można nazwać) mogą z czasem uleć zmianie. Myślę że znacznej większości 16GB darmowej przestrzeni wystarczy w zupełności, ale gdyby było wprost przeciwnie istnieje możliwość zwiększania pojemności dalej, tyle że niestety będzie to już płatne.

2. Instalujemy

Wszystkie poradniki w sieci (razem z tym na samym Dropbox’ie) mówią po prostu jakie komendy wpisać żeby zainstalować konsolową odmianę klienta, ale nie spotkałem się z żadnym, który zwrócił by uwagę na jedną bardzo ważną rzecz – jeśli zainstalujesz program z poziomu root to będziesz z niego korzystał z tego samego poziomu, a biorąc pod uwagę wiele aspektów tj. chociażby bezpieczeństwo nie warto tego robić. Nie warto tego robić choćby ze względu na to że później będziemy mieli problemy z robieniem kopi cronem. Tak więc dodajemy sobie nowego użytkownika, który będzie służył tylko do obsługi naszego backupu, na potrzeby tego artykuły nazwę go: panpudelko 😀 Zalogowani jako root wpisujemy (w Ubuntu i pochodnych nie zapomnij o sudo przed komendą, albo sudo su i enter):

adduser panpudelko

pamiętaj aby nadać trudne hasło, następnie logujemy się jako panpudelko

su panpudelko

przechodzimy do katalogu domowego

cd /home/panpudelko/
prościej 😉
cd ~

Dla wersji 32 bitowej użyjemy:

wget -O – „https://www.dropbox.com/download?plat=lnx.x86” | tar xzf –

Dla wersji 64 bitowej natomiast:

wget -O – „https://www.dropbox.com/download?plat=lnx.x86_64” | tar xzf –

Uwaga: znak ” ma być zawsze na górze!
Pobrane i wypakowane, teraz uruchamiamy (jeśli jest firewall trzeba dodać wyjątek dla poru 17500):

~/.dropbox-dist/dropboxd

Po chwili pojawi się link, który należy skopiować z konsoli do dowolnej przeglądarki po czym potwierdzić chęć dopisania naszego serwera do konta Dropbox przez zalogowanie się hasłem, które podaliśmy podczas rejestracji. Dla tych, którzy używają Putty i mają problem ze skopiowaniem linka podpowiem że wystarczy go zaznaczyć i kliknąć PPM – jeśli powieli się w konsoli to nic, ważne że prosto i szybko skopiował się do Windowsowego schowka. Nie ma znaczenie z jakiego komputera wejdziemy na ten link nie musi być z tego samego IP co montowana maszyna – w końcu założeniem wersji konsolowej jest aby wszytko działało bez środowiska graficznego.

Jeśli wszytko przebiegło pomyślnie synchronizacja już działa. W /home/panpudelko/ pojawił się nam katalog „Dropbox” w nim pojawią się wszystkie synchronizowane pliki.

3. dropbox.py

Służy do zarządzania klientem synchronizacji. Należy go tylko pobrać i umieścić w dowolnym miejscu, najlepiej i najprościej będzie umieścić go w katalogu domowym naszego użytkownika panpudelko, a więc pobieramy stąd:

https://www.dropbox.com/download?dl=packages/dropbox.py

i nadajemy mu chmod 777

Aby zapoznać się z funkcjami uruchamiamy pomoc

~/dropbox.py help

Uwaga: do poprawnego działania dropbox.py potrzebny jest Python, może zdarzyć sie i tak że nie ma go jeszcze w naszym systemie, w takim wypadku zapytaj Google jak go doinstalować w Twojej dystrybucji – nie obraź sie drogi czytelniku, ale ten artykuł i tak już będzie za długi 🙂

Jeśli wszystko działa to na razie wyłączmy synchronizację:

~/dropbox.py stop

4. Backup

Można pójść po najmniejszej linii oporu i stworzyć tylko dowiązanie za pomocą ln -s np.

ln -s /var/www /home/panpudelko/Dropbox

Zakładając oczywiście że ktoś tam coś trzyma – podałem /var/www żeby łatwo zobrazować temat. Trzeba się tylko mocno zastanowić czy takie rozwiązanie ma sens. Musimy pamiętać że Dropbox wykonuje kopie w czasie rzeczywistym czyli gdy tylko jakiś plik ulegnie zmianie jest aktualizowany na naszej chmurze. Jeśli zdarzy się tak że spali nam się dysk w serwerze bez RAID to rzeczywiście takie rozwiązanie sprawdzi się bo Dropbox zwyczajnie straci połączanie z naszym serwerem i będziemy mieli najświeższą wersję wszystkich plików dosłownie kilka sekund z przed awarii, ale co wtedy gdy np. podczas nieostrożnej pracy sami uszkodzimy, usuniemy jakiś plik czy zwyczajnie chcemy przywrócić wersję z wczoraj bo mamy taki kaprys – wtedy takie rozwiązanie na niewiele się zda. Dlatego najlepiej spakować cały katalog, który przeznaczony jest do backupu, włączyć klienta Dropbox, zsynchronizować dane i wyłączyć klienta. Najlepiej zrobić to w nocy, aby w dzień program nie zjadał niepotrzebnie zasobów 🙂

Dla przykładu chcemy mieć kopie katalogów /var/www/ i /etc/. Logujemy się znowu jako root i uruchamiamy tablicę zadań cron:

crontab -e

(wklejamy i zapisujemy)

15 2 * * * tar -zcvf /home/panpudelko/Dropbox/backup_www.tar.gz /var/www/
10 2 * * * tar -zcvf /home/panpudelko/Dropbox/backup_etc.tar.gz /etc/

Najpierw o godz 2:10 pakuje się nam /etc/, po kolejnych 5 minutach /var/www/ – trzeba to tak rozplanowywać, aby jeden zdążył zanim zacznie drugi inaczej może nieźle zamulić system, szczególnie jeśli jest to jakiś mały VPS. Jak widać paczki lądują od razu w katalogu, który jest synchronizowany. Teraz musimy zadbać o to, aby synchronizacja włączyła się i wyłączyła o odpowiedniej porze. Niech to będzie np. od 2:40 do 3:40 rano – pamiętaj żeby dać serwerowi wystarczająco dużo czasu na wykonanie paczek tar.gz, czas potrzebny na spakowanie plików zależy od ich wielkości oraz mocy obliczeniowej jaką dysponujemy. Jeśli nie masz zielonego pojęcia ile potrwa pakowanie to albo daj dużo więcej czasu na zapas, albo sprawdź ile to zajmie wykonując powyższe komendy ręcznie.

Aby włączyć i wyłączyć synchronizacje o określonych porach wykorzystamy dropbox.py 🙂 Logujemy się jako panpudelko i znowu otwieramy, ale tym razem jego crona:

crontab -e

(wklejamy i zapisujemy)

40 2 * * * /home/panpudelko/dropbox.py start /usr/bin/python
40 3 * * * /home/panpudelko/dropbox.py stop /usr/bin/python

Gotowe 🙂 Jeśli mamy ochotę do kompletu możemy zainstalować jeszcze klienta Dropbox na biurku czy to na Windows czy na Linux, aby pliki kopi pojawiały się automatycznie w naszym komputerze, a jeśli nie czujemy takiej potrzeby możemy w razie czego pobrać pliki z naszej chmury przez przeglądarkę.

Z góry przestrzegam i ucinam głupie komentarze – nie jest to profesjonalne rozwiązanie do użytku komercyjnego, ale jeśli ktoś ma mały serwer dla własnych potrzeb (np. narzędzia SEO) sprawdzi się świetnie. Druga sprawa – trzeba pamiętać że jeśli chcemy np. zbackupować bazę danych MySQL należy najpierw wykonać jej zrzut do jednego z katalogów, który będzie kompresowany, albo bezpośrednio do katalogu synchronizowanego 😉

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *