Я тогда не слабо ступил, думая, что у Дропбокса нет клиента в портах. Его-то нет, но есть API :)
Заметки на полях
Для графических Linux статейка по nautilus+dropbox.
Порт для графических FreeBSD: freebsd-linux-nautilus-dropbox
Ну а я для начала предполагаю через Dropbox передавать torrent-файлы. Трансмиссия уже сама подхватит новые файлы и переименует их в xxx.torrent.added На дальнем конце по появлению переименованного файла в директории Dropbox я пойму, что трансмиссия его проглотила и процесс пошёл.
Иду и регистрирую Dropbox App https://www.dropbox.com/developers/apps
Ставлю:
pkg_add -rv ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/p5-WebService-Dropbox.tbz
pkg_add -rv ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/dropbox-api-command.tbz
Настраиваю/подключаюсь:
dropbox-api setup
Ошибка:
SSL requires IO::Socket::SSL, but it is not available. Please install IO::Socket::SSL using your prefer CPAN client at /usr/local/lib/perl5/site_perl/5.12.4/WebService/Dropbox.pm line 290
Ставлю IO-Socket-SSL:
pkg_add -rv ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-9-stable/Latest/p5-IO-Socket-SSL.tbz
Пробую заново:
dropbox-api setup
Указываю (подсмотреть):
API Key
API Secret
Иду по линку и жму AllowAPI Secret
Вижу приглашение:
success! try
> dropbox-api ls
> dropbox-api find /
Испытываю: работает, но проблемы с русским, конечно...
Настраивая CRON, следует помнить, что limit of 5000 API calls per day.
Если предположить без особой избыточности, только синхронизация директорий sync, то проверять можно ну раз в минуту. И раз в минуту синхронизировать назад в Dropbox. На самом деле и раз в минут 5 мне будет предостаточно :)
Как пользоваться новой игрушкой читаю тут: https://github.com/s-aska/dropbox-api-command
dropbox-api sync dropbox:/_torrent_/_new_ /mnt/1TB/_torrent_/_new_
Файл опустился из облака в туалет. Из туалета возношу в облакА с разрешающей удаление опцией:dropbox-api sync /mnt/1TB/_torrent_/_new_
dropbox:/_torrent_/_new_ -d
Всё работает! Надо сломать ))))
Правлю установленный perl-скрипт:
/usr/local/bin/dropbox-api
24: my $config_file = file( $ENV{'DROPBOX_CONF'} || ($ENV{'HOME'}, '/../../mnt/dropbox/.dropbox-api-config') );
25: # my $config_file = file( $ENV{'DROPBOX_CONF'} || ($ENV{'HOME'}, '.dropbox-api-config') );
Не забываю положить сам конфиг в указанное место, перетащив его из /root:
/mnt/dropbox/.dropbox-api-config
Теперь пишу скрипт синхронизации Dropbox <--> Transmission:
#!/bin/sh ######################################################################## # Syncing script dropboxsync.sh # Goal Dropbox<-->Transmission # Use https://github.com/s-aska/dropbox-api-command # By rvm.my.home.s@gmail.com # URL http://mytoiletserver.blogspot.com/ ### SYNC_OPTIONS: # -v -- Verbose # -d -- Delete API_BIN="/usr/local/bin/dropbox-api" SYNC_OPTIONS="-d" DROPBOX_REMOTE_FOLDER="dropbox:/_torrent_/_new_/" LOCAL_SYNC_FOLDER="/mnt/1TB/_torrent_/_new_/" LOG_FILE="dropboxsync.log" LOG_FILEPATH="/mnt/dropbox/$LOG_FILE" SYNC_PAUSE_SECONDS=30 START_MESSAGE=">>>>>>>>>> Now syncing '`hostname`' with Dropbox [UID=`dropbox-api uid`]" END_MESSAGE="<<<<<<<<<< Syncing complete!" PAUSE_MESSAGE="========== Syncing now sleeping $SYNC_PAUSE_SECONDS seconds for Transmission work..." DATE_FORMAT="date +%t%d.%m.%Y%t%k:%M:%S%t" echo "*****************************************" >> ${LOG_FILEPATH} MESSAGE="echo Current dir: `pwd`" $MESSAGE >> ${LOG_FILEPATH} MESSAGE="echo Current user: `id`" $MESSAGE >> ${LOG_FILEPATH} MESSAGE="echo `$DATE_FORMAT` $START_MESSAGE" $MESSAGE >> ${LOG_FILEPATH} ### Command: Sync to Me $API_BIN sync ${DROPBOX_REMOTE_FOLDER} ${LOCAL_SYNC_FOLDER} ${SYNC_OPTIONS} >> ${LOG_FILEPATH} MESSAGE="echo `$DATE_FORMAT` $PAUSE_MESSAGE" $MESSAGE >> ${LOG_FILEPATH} sleep $SYNC_PAUSE_SECONDS ### Command: Sync to Dropbox $API_BIN sync ${LOCAL_SYNC_FOLDER} ${DROPBOX_REMOTE_FOLDER} ${SYNC_OPTIONS} >> ${LOG_FILEPATH} MESSAGE="echo `$DATE_FORMAT` $END_MESSAGE" $MESSAGE >> ${LOG_FILEPATH} ### Command: Copy Log-File to Dropbox cp ${LOG_FILEPATH} ${LOCAL_SYNC_FOLDER}${LOG_FILE} $API_BIN put ${LOCAL_SYNC_FOLDER}${LOG_FILE} ${DROPBOX_REMOTE_FOLDER}
Даю ему права, проверяю - всё работает.
Помещаю в cron от root или от нового пользователя dropbox:
/mnt/dropbox/dropboxsync.sh
P.S.
1. Немаловажное замечание. Весь обмен идёт с приватными папками DropBox.2. Кстати, кронтабы пользователей хранятся вот по этому пути:
/var/cron/tabs
/etc/crontab - root's crontab
Запостился на эту тему на форуме FreeNAS sourceforge.net
Там даже както красивее получилось, собрал мысли в кучку :)
Но форум тот канул в лету, а на новом только скромный пост в эту тему.
Sparkleshare действительно свободный аналог Dropbox на своем сервере
А есть идея как это привинтить к 64 битной системе ???
ОтветитьУдалитьПроковырял интернет, никак не вкурю как прикрутить 32 битные библиотеки к 64 фре.