Опять Босс на работе сгенерировал очередное задание:
Имеем 2 офиса одной фирмы.
Задача:
Организовать файлообмен между ними.
У меня в голове возникло несколько решений этой задачи:
1) VPN туннель.
Такое решение слишком избыточно для простого файлообмена.
Плюсы:
Могут ходить в по сети в другой офис.
Лёгкость работы.
Шифрование данных
Сжатие данных
Из минусов:
Невозможно работать дома (я манагерам не доверяю, сертификаты не дам)
Нагрузка на интернет канал.
Из-за медленного канала возникнут тормоза при работе непосредственно с сетевой шары.
(можно конечно синхронизацию с локальной шарой сделать и пускай они с неё работают)
Избыточность для такой простой задачи.
2) FTP
Плюсы:
Простота реализации
Гибкие настройки
Можно работать дома
Минусы:
Сложность работы с FTP, манагеры этого точно не осилят.
Должен кто-то постоянно отгружать данные (Синхронизировать)
3) Подумав ещё немного я вспомнил про проект DropBox.
Особенно про Linux версию, которая может работать в качестве демона.
Плюсы:
Резервирование данных
Возможность отката
Можно работать из дома
Оптимизация интернет трафика
Шифрование данных
Сжатие данных перед отправкой
Абсолютная прозрачность для пользователя.
Минусы:
2 Гига места, но решается покупкой платного аккаунта.
Зависимость от сервиса.
Проанализировав эти три варианта я остановился на сервисе DropBox
Схема файлообмена:
Офис 1 <=> Samba шара <=> DropBox <=> internet <=> DropBox <=> Winodws шара (Офис 2)
Пояснения:
Папку ~/Dropbox я открою по сети через Samba сервер.
Всё что туда будет попадать, автоматически будет синхронизироваться с сервисом DropBox
Во втором офисе я ставлю Windows клиента DropBox и папку так-же открываю в сеть.
PS. Как вариант использования:
Можно например туда базы 1С разместить, и они будут бэкапиться автоматически.
Или просто туда какие-нидуь бэкапы скидывать или важные документы, всё зависит от Вашей фантазии.
Для начала нам требуется зарегистрировать на сервисе.
Сделайте одолжение:
Зарегистрируйтесь по моей реферальной ссылке, это даст мне и Вам дополнительное место (250 Мб)
Вот смотрю рефералы (Спасибо кто по ссылке регистрируется).
Для получения дополнительного места нужно выполнить 3 этапа:
1) Перейти по реферальной ссылке
2) Зарегистрироваться
3) Установить программу клиент Dropbox
Установка клиента DropBox на Linux без GUI
Если у Вас есть GUI на сервере, то для Вас задача существенно упрощается:
Вам просто нужно скачать один из архивов (ссылки ниже)
Например:
wget -O dropbox.tar.gz http://www.getdropbox.com/download?plat=lnx.x86
Разархивировать:
tar zxof dropbox.tar.gz
И перенисти полученные файлы в свою домашнюю директорию
mv .dropbox-dist ~/.dropbox-dist/
Запустить демона.
~/.dropbox-dist/dropboxd &
И заполнить данные своего аккаунта.
Я же работаю через с серверами удалённо через SSH и GUI мне вообще не нужен.
Приступаем:
Качаем подходящий архив для Вашего Linux’a (32 бита или 64 бита)
Поскольку у меня 32-х битная версия Linux, я разумеется выбрал 32-х битную версию
Качаем:
cd /tmp
wget -O dropbox.tar.gz http://www.getdropbox.com/download?plat=lnx.x86
Распаковываем:
tar zxof dropbox.tar.gz
И переносим полученные файлы в свою домашнюю директорию
mv .dropbox-dist ~/.dropbox-dist/
Далее нам потребуется пара программ на python’e
Качаем их:
wget http://dl.getdropbox.com/u/6995/dbmakefakelib.py
wget http://dl.getdropbox.com/u/6995/dbreadconfig.py (не обязателен)
Затем выполняем первую – dbmakefakelib.py
python dbmakefakelib.py
И видим такую строку:
dropboxd ran for 15 seconds without quitting – success?
Значит всё прошло хорошо.
Идём дальше.
Выполняем вторую программу dbreadconfig.py
Она нам нужна, что-бы узнать HostID
python dbreadconfig.py
host_id = 739bfe362f3bb3246da99dc8d20dbe2b
last_revision = None
schema_version = 6
Лично у меня эта программа не запустилась.
Решено было воспользоваться вторым способом: через sqlite
cd .~/.dropbox
Выполняем:
sqlite3 dropbox.db
SQLite version 3.6.11
Enter «.help» for instructions
Enter SQL statements terminated with a «;»
sqlite>
Вводим:
.dump config
И в ответ получаем что-то типа этого:
BEGIN TRANSACTION;
CREATE TABLE config (
id INTEGER PRIMARY KEY,
key TEXT NOT NULL UNIQUE,
value TEXT
);
INSERT INTO "config" VALUES(1,'schema_version','STYKLg==
');
INSERT INTO "config" VALUES(2,'last_revision',NULL);
INSERT INTO "config" VALUES(3,'host_id','VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=
');
COMMIT;
Нас интересует вот это, у Вас будет своё значение (в примере я исказил свои данные):
VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=
Это и есть идентификатор Вашего хоста, но он зашифрован по технологии Base64
Ну что ж, расшифруем:
Способ 1:
Используем интернет.
Идём по ЭТОЙ ссылке и вставляем туда наше значение.
Способ 2:
Без соединения с интернетом.
Воспользуемся утилитой base64
Делаем так:
echo «VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=» > /tmp/enc.txt
base64 -d /tmp/enc.txt
В результате любого способы мы получим например такое значение:
Vbca6bc60f58a120987485р5ff33acef
Отбрасываем буквы V спереди и получаем такое значение:
bca6bc60f58a120987485р5ff33acef
Это и есть на HOSTID
Идём по ссылке:
https://www.getdropbox.com/register?host_id=HOSTID
Это можно сделать с любого ПК подключённого к интернету, не обязательно с сервера.
HOSTID нужно заменить на свой, полученный на предыдущим шаге.
В наше случае будет такая ссылка:
https://www.getdropbox.com/register?host_id=bca6bc60f58a120987485р5ff33acef
Далее просто вводим своё имя и пароль, снизу будет имя Вашего сервера.
После авторизации Ваш хост будет добавлен в список хостов.
Повторите данную операцию для всех ПК, которые будут использовать в файлообмене.
Осталось совсем немного, создать папку Dropbox в своей домашней директории:
mkdir ~/Dropbox
И запустить демона.
~/.dropbox-dist/dropboxd &
Ну и разумеется написать скрипты для автостарта, примеры для Gentoo, Fedora/RedHat, Debian Вы можете посмотреть в Источнике
Всё, теперь можно насаждаться всеми прелестями сервиса DropBox
UPD:
Заметил, DropBox не синхронизирует файлы и папки с русскими именами.
Причём именно Linux клиент, хотя у меня вся система работает в юникоде.