Многим нравится Dropbox из-за простой и мгновенной синхронизации файлов между устройствами, а те, кто работает со своим сайтом или блогом знают, что часто получение файлов с серверов вызывает лишнюю головную боль… Dropbox создан для решения этой проблемы, просто для этого нужно немного находчивости.
В этом уроке мы настроим Dropbox на Вашем сервере для выборочной синхронизации файлов, чтобы эти файлы были доступными в любом месте и Ваша жизнь стала проще.
Начнем
Это руководство предполагает, что на Вашем сервере используется Ubuntu, но этот способ может работать и на других дистрибутивах с небольшими изменениями. У меня есть простые сервера на Amazon EC2 и Linode, и если Вы только начинаете, можете использовать их.
В этой статье я покажу основные шаги, чтобы Вам не пришлось искать большую часть информации по всему Интернету в поисках решения, которым я воспользовался.
Шаг 1: Зайдите в вашу локальную папку Dropbox и создайте папку с название Server, или назовите её как Вам будет угодно, но если название будет другим, Вам нужно будет его запомнить.
Установим Dropbox
Шаг 2: Теперь подключитесь к Вашему серверу через SSH. Давайте проверим, у Вас на сервере 32-битная или 64-битная система.
uname -m
Если вы увидите, что у Вас x86_64:
cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
Если вы увидите, что у Вас i686:
cd ~ && wget -O - "http://www.dropbox.com/download?plat=lnx.x86" | tar xzf -
Шаг 3: Скачаем полезный сценарий на Python, чтобы мы могли управлять Dropbox'ом и bash-скрипт, который мы будем использовать для запуска и остановки Dropbox.
mkdir ~/utils
wget -O ~/utils/dropbox.py www.dropbox.com/download?dl=packages/dropbox.py
chmod 755 ~/utils/dropbox.py
wget -O ~/utils/dropbox_temp "https://raw.github.com/gist/2347727/108fc8af551cb4fdf7cdd08b891a45f405d283dc/dropbox"
Шаг 4: Запустите демона Dropbox из только что созданной папки .dropbox-dist
~/.dropbox-dist/dropboxd
Шаг 5: Dropboxd выведет сообщение «This client is not linked to any account...» и даст Вам ссылку, скопируйте и вставьте её в свой веб-браузер и пройдите аутентификацию и проверку нового соединения.
Шаг 6: После того, как Dropbox соединится с сервером, убейте демона с помощью Ctrl-C.
Теперь, когда Dropbox прилинкован, установим его в качестве службы в Ubuntu.
Шаг 7: Сначала отредактируйте скрипт и замените «user1 user2» на Ваше серверное имя пользователя (но не на Ваш логин на Dropbox). Затем мы перемещаем его в нужное место, устанавливаем соответствующие права и добавляем его в автозагрузку.
nano ~/utils/dropbox_temp
sudo mv ~/utils/dropbox_temp /etc/init.d/dropbox
sudo chmod +x /etc/init.d/dropbox
sudo update-rc.d dropbox defaults
Проверьте, запущен ли Dropbox, если нет — запустите его.
sudo service dropbox status
sudo service dropbox start
Оно работает
~/utils/dropbox.py status
-> Downloading 3,134 files (0.1 KB/sec, a long time left.
Grab a Snickers)
Ууупс! Dropbox сейчас синхронизирует все содержание Dropbox на Ваш сервер, для меня это не очень хорошо, поэтому давайте устраним это, используя выборочную синхронизацию.
Выборочная синхронизация
Шаг 8: Вам необходимо набрать команду 'exclude add' для тех каталогов верхнего уровня, которые Вы не хотите синхронизировать, я предлагаю начать с исключения самого большого каталога для того, чтобы Dropbox и Ваш сервер не выполнял лишнюю работу.
cd ~/Dropbox
~/utils/dropbox.py ls
-> Photos Projects Public Server Work
~/utils/dropbox.py exclude add Projects
~/utils/dropbox.py exclude add Photos
~/utils/dropbox.py exclude add Public
~/utils/dropbox.py exclude add Work
~/utils/dropbox.py ls
-> Server
Получилось?
Перейдем в каталог Dropbox в своем домашнем каталоге на сервера, создадим в нем файл для проверки.
cd ~/Dropbox/Server
echo 'success' > success.txt
Проверьте Вашу папку Dropbox на Вашем локальном компьютере, если файл success.txt появился — Вы подключены!
Получилось!
Синхронизация каталога работает в обоих направлениях, сделайте изменения, добавьте новый файл, и Вы увидите его на своем сервере почти мгновенно.
Данная статья является переводом. Оригинал доступен по ссылке.
Автор: VitaliyS