Το προφίλ μας στο Google Plus
0

Πώς θα βάλετε Dropbox σε headless Linux

Ένα headless Linux box/VM για το συγχρονισμό των αρχείων του Dropbox, συχνά αποδεικνύεται εξαιρετικά βολικό. Αναλογιστείτε, π.χ., το σενάριο όπου υπάρχει μεγάλος όγκος δεδομένων σας σε Pro account του Dropbox, όμως όλα αυτά τα αρχεία είναι ανέφικτο να βρίσκονται *σε κάθε* desktop/laptop που διαθέτετε. Την ίδια στιγμή, χρειαζόσαστε ένα πλήρες κι άμεσα προσβάσιμο τοπικό backup.

Πρόσφατα εγκαταστήσαμε το Dropbox σε ένα KVM VM με Ubuntu Server. Ανά πάσα στιγμή θέλουμε εύκαιρο ένα *τοπικό* backup των video του deltaCast, τα οποία ούτως ή άλλως είναι ανεβασμένα στο cloud του Dropbox. Το laptop που χρησιμοποιούμε για την παραγωγή των video έχει όλη την απαραίτητη επεξεργαστική ισχύ, ωστόσο ο δίσκος SSD που διαθέτει θα γέμιζε γρήγορα αν κρατούσαμε *και* σ’ αυτόν όλα τα αρχεία των παραγωγών. Η ιδέα, λοιπόν, είναι ότι κάθε φορά που ολοκληρώνουμε την προετοιμασία ενός επεισοδίου, μέσω SFTP στέλνουμε τα σχετικά αρχεία στον κατάλληλο φάκελο του Ubuntu Server. Ο φάκελος αυτός βρίσκεται μέσα σ’ εκείνον του Dropbox, επομένως αμέσως αρχίζει και το uploading στο cloud της υπηρεσίας. Διαθέτουμε έτσι ένα εύκολα προσβάσιμο τοπικό backup καθώς κι ένα off-site, στο cloud.

Στο παρόν άρθρο δείχνουμε, αναλυτικά και βήμα προς βήμα, την απλή ομολογουμένως διαδικασία εγκατάστασης του Dropbox σε έναν Linux host με Ubuntu Server 14.04 LTS 64bit. Το σύστημα με το Linux μάς αρέσει να το αποκαλούμε “Dropbox node” και στην περίπτωσή μας πρόκειται για ένα KVM VM, πάνω από έναν φυσικό υπολογιστή με openSUSE. Η εικονική μηχανή έχει 1GB RAM, χρησιμοποιεί bridged networking, διαθέτει έναν δυναμικό εικονικό δίσκο με άνω όριο μεγέθους τα 32GB, ενώ της έχουμε δώσει κι απευθείας πρόσβαση σε φυσικό δίσκο μεγέθους 1TB: αυτή είναι και η χωρητικότητα του Dropbox Pro account που διαθέτουμε. Παρεμπιπτόντως, για το virtualization με το KVM πάνω από openSUSE, μπορείτε να διαβάσετε το σχετικό αφιέρωμα που φιλοξενούμε στο deltaHacker 049 (μέρος 1 και μέρος 2). Στην τελευταία ενότητα του δεύτερου μέρους εξηγούμε και πώς δίνουμε στα VMs φυσικούς δίσκους. Για το σκοπό μας, πάντως, αν δεν επιθυμείτε να εργαστείτε σε εικονικό υπολογιστή εννοείται ότι κάλλιστα μπορείτε να επιστρατεύσετε έναν φυσικό.

Εγκατάσταση Dropbox σε Ubuntu Server
Μέσω SSH αποκτάμε πρόσβαση σε user account μας στο Ubuntu Server box/VM, κι αμέσως κατεβάζουμε το binary του Dropbox για την εκδοχή του λειτουργικού μας (64bit).

sub0@dbxnode:~$ cd
sub0@dbxnode:~$ wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

Αν το δικό σας Ubuntu Server είναι για επεξεργαστή αρχιτεκτονικής 32bit, τότε στη θέση του “lnx.x86_64” θα βάλετε το “lnx.x86”.

Από ένα τερματικό έχουμε συνδεθεί μέσω SSH στον Ubuntu Server και με τη βοήθεια του wget κατεβάζουμε στον προσωπικό κατάλογο του χρήστη μας (sub0) το binary του Dropbox, για Linux 64bit.

Από ένα τερματικό έχουμε συνδεθεί μέσω SSH στον Ubuntu Server και με τη βοήθεια του wget κατεβάζουμε στον προσωπικό κατάλογο του χρήστη μας (sub0) το binary του Dropbox, για Linux 64bit.

Όταν το downloading ολοκληρωθεί θα έχουμε το αρχείο dropbox.tar.gz. Το αποσυμπιέζουμε εντός του προσωπικού μας καταλόγου:

sub0@dbxnode:~$ tar -xvzf dropbox.tar.gz

Με την αποσυμπίεση προκύπτει ο κατάλογος ~/.dropbox-dist κι ο δαίμονας (daemon) του Dropbox είναι το αρχείο dropboxd εντός. Πριν τον ενεργοποιήσουμε, να κάνουμε μια παρατήρηση για τα locales του συστήματος. Γενικά, αν δεν έχουν τεθεί σωστά τότε κατά τις αναβαθμίσεις με το apt θα βλέπουμε στο τερματικό μας ένα σωρό προειδοποιήσεις. Επίσης, κάποιες διαδικασίες είναι πιθανόν ν’ αποτυγχάνουν. Πιο συγκεκριμένα, αν η μεταβλητή περιβάλλοντος LANG δεν έχει τεθεί, τότε η ενεργοποίηση του dropboxd πιθανώς ν’ αποτύχει. Για να μην έχουμε θέματα με τα locales, αρκεί να τροποποιήσουμε κατάλληλα το αρχείο /etc/default/locale, π.χ., με το nano. Δείτε τα περιεχόμενα του δικού μας /etc/default/locale, στο οποίο οι μεταβλητές περιβάλλοντος LANG, LC_ALL και LANGUAGE τίθενται ίσες προς en_US.UTF-8 (αμερικάνικα αγγλικά με υποστήριξη unicode):

sub0@dbxnode:~$ cat /etc/default/locale 
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"

Αφού τροποποιήσετε το /etc/default/locale πληκτρολογήστε

sub0@dbxnode:~$ sudo locale-gen

αποσυνδεθείτε από το λογαριασμό σας κι αμέσως μετά συνδεθείτε και πάλι. Ας ενεργοποιήσουμε τώρα τον Dropbox daemon για πρώτη φορά:

sub0@dbxnode:~$ ~/.dropbox-dist/dropboxd

Στο τερματικό σας θα δείτε ένα μήνυμα-προτροπή για τη σύνδεση του υπολογιστή σε λογαριασμό Dropbox.

Την πρώτη φορά που τρέχουμε το dropboxd καλούμαστε να επισκεφθούμε, από έναν οποιονδήποτε browser, σε έναν οποιονδήποτε υπολογιστή με περιβάλλον γραφικών, το URL που μας παρατίθεται, προκειμένου το μηχάνημα να συνδεθεί με το λογαριασμό μας στο Dropbox.

Την πρώτη φορά που τρέχουμε το dropboxd καλούμαστε να επισκεφθούμε, από έναν οποιονδήποτε browser, σε έναν οποιονδήποτε υπολογιστή με περιβάλλον γραφικών, το URL που μας παρατίθεται, προκειμένου το μηχάνημα να συνδεθεί με το λογαριασμό μας στο Dropbox.

Αντιγράφουμε το URL σύνδεσης που δίνεται στο τερματικό κι από έναν οποιονδήποτε web browser, σε έναν οποιονδήποτε υπολογιστή με περιβάλλον γραφικών, κάνουμε πρώτα login στο λογαριασμό μας στο https://dropbox.com. Στη μπάρα διευθύνσεων του browser μεταφέρουμε το URL και πατάμε [Enter]. Θα ερωτηθούμε αν επιθυμούμε τη σύνδεση του νέου υπολογιστή (εμάς έχει hostname το dbxnode) με το λογαριασμό μας στο Dropbox. Απαντάμε θετικά, με κλικ στο Connect.

Αφού κάνουμε login στο λογαριασμό μας στο Dropbox και επισκεφθούμε το URL που μας δόθηκε στο τερματικό, ερωτόμαστε αν επιθυμούμε τη σύνδεση του νέου host (για το παράδειγμά μας είναι ο dbxnode) με το λογαριασμό μας στο Dropbox. Απαντάμε θετικά, φυσικά.

Αφού κάνουμε login στο λογαριασμό μας στο Dropbox και επισκεφθούμε το URL που μας δόθηκε στο τερματικό, ερωτόμαστε αν επιθυμούμε τη σύνδεση του νέου host (για το παράδειγμά μας είναι ο dbxnode) με το λογαριασμό μας στο Dropbox. Απαντάμε θετικά, φυσικά.

Όλα πήγαν καλά κι άλλη μια συσκευή έχει πρόσβαση στο Dropbox μας.

Όλα πήγαν καλά κι άλλη μια συσκευή έχει πρόσβαση στο Dropbox μας.

Ιδού η νέα συσκευή που μόλις συνδέθηκε.

Ιδού η νέα συσκευή που μόλις συνδέθηκε.

Μετά από επιτυχή σύνδεση, στο τερματικό από το οποίο τρέξαμε το dropboxd βλέπουμε σχετικό μήνυμα που ενημερώνει πως όλα πήγαν κατ' ευχήν.

Μετά από επιτυχή σύνδεση, στο τερματικό από το οποίο τρέξαμε το dropboxd βλέπουμε σχετικό μήνυμα που ενημερώνει πως όλα πήγαν κατ’ ευχήν.

Μετά από την επιτυχή σύνδεση, το dropboxd δημιουργεί τον κατάλογο ~/Dropbox και ξεκινά το κατέβασμα φακέλων κι αρχείων από το λογαριασμό μας στην υπηρεσία. Μπορούμε να το στείλουμε στο υπόβαθρο (με το συνδυασμό πλήκτρων [CTRL+Z] και πληκτρολογώντας bg ακολουθούμενο από [Enter]) και να το αφήσουμε στην ησυχία του, να συγχρονίσει τον τοπικό κατάλογο με εκείνον στο cloud. Ακόμα καλύτερα, προτείνεται να σταματήσουμε προσωρινά το dropboxd με το συνδυασμό πλήκτρων [CTRLC] και να κατεβάσουμε ένα Python script, για τον πολύ καλύτερο έλεγχο του δαίμονα. Το εν λόγω script ονομάζεται dropbox.py. Αφού το κατεβάσαμε, το κάναμε εκτελέσιμο και το αποθηκεύσαμε στον κατάλογο ~/bin.

sub0@dbxnode:~$ mkdir ~/bin
sub0@dbxnode:~$ wget -O ~/bin/dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py"
sub0@dbxnode:~$ chmod 755 ~/bin/dropbox.py

Με το Python script ονόματι dropbox.py ο έλεγχος του dropboxd διευκολύνεται σημαντικά.

Με το Python script ονόματι dropbox.py ο έλεγχος του dropboxd διευκολύνεται σημαντικά.

Το dropbox.py δέχεται μια σειρά από εντολές και για να τις δούμε όλες αρκεί να πληκτρολογήσουμε

sub0@dbxnode:~$ ~/bin/dropbox.py help

Οι εντολές που καταλαβαίνει το dropbox.py, το επίσημο Python script για τον έλεγχο του Dropbox daemon.

Οι εντολές που καταλαβαίνει το dropbox.py, το επίσημο Python script για τον έλεγχο του Dropbox daemon.

Μεταξύ άλλων, βλέπουμε ότι o δαίμονας ξεκινά με

sub0@dbxnode:~$ ~/bin/dropbox.py start

και σταματά με

sub0@dbxnode:~$ ~/bin/dropbox.py stop

Πριν ενεργοποιήσουμε ξανά τον Dropbox daemon, ίσως θελήσουμε να μεταφέρουμε τον κατάλογο ~/Dropbox σε κάποια πιο βολική τοποθεσία. Εμείς, π.χ., θέλαμε τον κατάλογο στον φυσικό δίσκο που είχαμε αντιστοιχίσει στο VM — και συγκεκριμένα στο ένα και μοναδικό διαμέρισμα του εν λόγω δίσκου, το οποίο ήταν προσαρτημένο κάτω από το /mnt/wdcBlue1TB. Με δικαιώματα υπερχρήστη, λοιπόν, μεταφέραμε τον κατάλογο ~/Dropbox εκεί, ενώ στο home directory του χρήστη μας (sub0) φτιάξαμε ένα symbolic link προς τη νέα θέση του καταλόγου Dropbox:

sub0@dbxnode:~$ sudo mv ~/Dropbox /mnt/wdcBlue1TB
sub0@dbxnode:~$ ln -s /mnt/wdcBlue1TB/Dropbox ~/Dropbox

Αμέσως μετά ξεκινήσαμε τον dropboxd:

sub0@dbxnode:~$ ~/bin/dropbox.py start

Όποτε θέλουμε να βεβαιωθούμε ότι όλα πάνε καλά με τον δαίμονα, αρκεί να πληκτρολογήσουμε

sub0@dbxnode:~$ ~/bin/dropbox.py status

Ο Dropbox daemon εργάζεται σιωπηρά στο background, χωρίς κανένα πρόβλημα απολύτως.

Ο Dropbox daemon εργάζεται σιωπηρά στο background, χωρίς κανένα πρόβλημα απολύτως.

Μένει ένα τελευταίο ζήτημα. Θέλουμε τον dropboxd να ενεργοποιείται αυτόματα, αμέσως μετά την εκκίνηση του λειτουργικού συστήματος. Ο ευκολότερος ίσως τρόπος για να το πετύχουμε είναι με την κατάλληλη προσθήκη στο crontab του χρήστη μας. Αναλυτικότερα, στη γραμμή εντολών δίνουμε

sub0@dbxnode:~$ crontab -e

και η γραμμή που βάζουμε στο crontab είναι η ακόλουθη:

@reboot $HOME/.dropbox-dist/dropboxd

Αποθηκεύουμε την αλλαγή με [CTRL+O], [Enter] κι εγκαταλείπουμε τον editor με [CTRL+X].

Ο ευκολότερος ίσως τρόπος προκειμένου ο Dropbox daemon να ενεργοποιείται αυτόματα κατά την εκκίνηση του Ubuntu Server, είναι με την προσθήκη της τονισμένης γραμμής στο crontab του χρήστη μας.

Ο ευκολότερος ίσως τρόπος προκειμένου ο Dropbox daemon να ενεργοποιείται αυτόματα κατά την εκκίνηση του Ubuntu Server, είναι με την προσθήκη της τονισμένης γραμμής στο crontab του χρήστη μας.

Αυτό ήταν, είμαστε 100% έτοιμοι και το Dropbox node μας είναι πλήρως λειτουργικό.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων