E-mail: info@olegorlov.com | Skype: Мой статус olegik.orlov
поделись в соц. сети:

14 мая 2012 г.

Как установить Dropbox на Ubuntu Server?

Dropbox Ubuntu Многие пользуются сервисом Dropbox для синхронизации данных между своими компьютерами. Между тем немногие знают, что сервисом можно пользоваться и без GUI (графической оболочки). В этой статье пойдет речь о том как установить Dropbox и для чего он нужен на сервере. Естественно, статья касается Ubuntu Server.

Зачем нужен Dropbox на сервере? Применений много... Одно из них - удобная заливка файлов на сервер. Гораздо удобней положить нужный файл в папку Dropbox, чем подключаться к серверу по какому-то протоколу. А второе применение, которое я использую – это резервные копии. Суть в следующем: периодически (каждый день) некий скрипт делает резервную копию важных данных на сервере и помещает ее в папку, которая синхронизируется через Dropbox. Согласитесь, это и удобно, и быстро. Допустим, ваш сервер – это web-сервер, на котором крутятся ваши сайты, и этот сервер вы арендуете не то что в другой стране, а на другом континенте, то есть физически к нему доступ для вас затруднен. Каждое утро получать резервную копию с этого сервера в свою папку на своем жестком диске безо всяких дополнительных телодвижений – просто сказка.

Но хватит лирики, перейдем непосредственно к установке. На моем сервере используется Ubuntu Server 12.04 LTS.

Установка Dropbox на Ubuntu Server

Заходим в консоль своего сервера и переходим в домашнюю папку. Скачиваем нужный нам архив (32-битный или 64-битный). Проверить какой именно архив нужен Вам можно по:

uname -m

Если i686 то:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"

Если x86_64 то:

wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"

Распаковываем архив:

tar -xvzf dropbox.tar.gz

Запускаем dropboxd

~/.dropbox-dist/dropboxd

Нам будет показана информация о дальнейших шагах установки Dropbox:

This client is not linked to any account...
Please visit https://www.dropbox.com/cli_link?host_id=0501f86e946e3ff8232ecf027bb4239a&cl=en_US to link this machine.

Вам нужно пройти по предложенной ссылке, зарегистрироваться в Dropbox и добавить свой сервер в список присоединенных компьютеров (устройств).

После чего (не больше минуты) в консоли мы увидим следующее:

Client successfully linked, Welcome Roman!

Собственно в домашней папке создалась папка Dropbox и даже началась синхронизация. Однако прервем ее, чтобы настроить Dropbox как сервис. Чтобы остановить синхронизацию нажмите комбинацию CtrlC

Настройка Dropbox как сервиса

Для этого создаем файл /etc/init.d/dropbox

sudo nano /etc/init.d/dropbox

со следующим содержимым:

#!/bin/sh
# dropbox service
# Replace with linux users you want to run Dropbox clients for
DROPBOX_USERS="user1 user2"
 
DAEMON=.dropbox-dist/dropbox
 
start() {
    echo "Starting dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
stop() {
    echo "Stopping dropbox..."
    for dbuser in $DROPBOX_USERS; do
        HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
        if [ -x $HOMEDIR/$DAEMON ]; then
            start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
        fi
    done
}
 
status() {
    for dbuser in $DROPBOX_USERS; do
        dbpid=`pgrep -u $dbuser dropbox`
        if [ -z $dbpid ] ; then
            echo "dropboxd for USER $dbuser: not running."
        else
            echo "dropboxd for USER $dbuser: running (pid $dbpid)"
        fi
    done
}
 
case "$1" in
 
    start)
        start
        ;;
 
    stop)
        stop
        ;;
 
    restart|reload|force-reload)
        stop
        start
        ;;
 
    status)
        status
        ;;
 
    *)
        echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
        exit 1
 
esac
 
exit 0

Обратите внимание на третью строчку. Вместо “user1 user2” подставьте свои логины на сервере(!!!НЕ ЛОГИН DROPBOX А ПОЛЬЗОВАТЕЛЯ СЕРВЕРА НУ ИЛИ ROOT ЕСЛИ ВЫ ПОД НИМ СТАВИТЕ). Как вы уже поняли, сервис можно запустить для многих пользователей, а не для одного. При этом каждому пользователю придется скачать пакет, распаковать его и привязать к своему аккаунту (все это было описано выше).

Даем скрипту права на выполнение и добавляем его в автозапуск следующими двумя командами:

sudo chmod +x /etc/init.d/dropbox
sudo update-rc.d dropbox defaults

Теперь вы можете управлять на сервере сервисом Dropbox командами:

sudo service dropbox start
sudo service dropbox stop
sudo service dropbox restart
sudo service dropbox status

Проверка статуса при помощи Dropbox CLI

Скрипт на пайтоне позволяет управлять работой dropbox и данными. Качаем и ложим в любое удобное место, я кладу к остальным файлам dropbox-а:

wget -O ~/.dropbox/dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py"
chmod 755 ~/.dropbox/dropbox.py

Проверка статуса:

~/.dropbox/dropbox.py status
Downloading 125 files (303.9 KB/sec, 1 hr left)

Полный список команд CLI:

~/.dropbox/dropbox.py help
 
Note: use dropbox help  to view usage for a specific command.
 
 status       get current status of the dropboxd
 help         provide help
 puburl       get public url of a file in your dropbox
 stop         stop dropboxd
 running      return whether dropbox is running
 start        start dropboxd
 filestatus   get current sync status of one or more files
 ls           list directory contents with current sync status
 autostart    automatically start dropbox at login
 exclude      ignores/excludes a directory from syncing

Selective Sync (Избирательная синхронизация)

По умолчанию все папки синхронизируются и для того чтобы исключить лишнее:

~/.dropbox/dropbox.py help exclude
 
dropbox exclude [list]
dropbox exclude add [DIRECTORY] [DIRECTORY] ...
dropbox exclude remove [DIRECTORY] [DIRECTORY] ...
 
"list" prints a list of directories currently excluded from syncing.  
"add" adds one or more directories to the exclusion list, then resynchronizes Dropbox. 
"remove" removes one or more directories from the exclusion list, then resynchronizes Dropbox.
With no arguments, executes "list". 
Any specified path must be within Dropbox.

В качестве примера исключим папку test из числа синхронизируемых:

~/.dropbox/dropbox.py exclude add ~/Dropbox/test

Исключим конкретный файл test.txt:

~/.dropbox/dropbox.py exclude add ~/Dropbox/test.txt

Убрать исключение можно так:

~/.dropbox/dropbox.py exclude remove ~/Dropbox/test

Полный список исключенных файлов и папок можно посмотреть так:

~/.dropbox/dropbox.py exclude list

Собственно на этом установка и завершена.

Материал собирательный и взят тут, тут и тут. Полностью проверен на работоспособность в Ubuntu 12.04 LTS Server

С удовольствием отвечу на ваши вопросы и комментарии.

поделись: