Page 6 of 7 FirstFirst ... 4567 LastLast
Results 76 to 90 of 103

Thread: Монтирование облачного диска (DropBox, Яндекс.Диск, Box.com, GoogleDrive)

  1. #76
    Join Date
    Oct 2009
    Posts
    529
    Blog Entries
    1
    Quote Originally Posted by lohmat View Post
    Да, пакет интересный!
    А когда добавите, то существующий нужно будет удалить, а потом из репозитория ставить, или он и так обновляться будет?
    Если ставили непосредственно из ipk, то для верности потом лучше переставить из репозитория.

  2. #77
    Итого, пишу для непосвященных и для истории.
    Чтобы при запуске роутера монтировался ЯндексДиск надо создать файл S50yadisk в /opt/etc/init.d. С таким содержимым:
    Code:
    #!/bin/sh
    
    MOUNT="/opt/tmp/ya_disk"
    
    export PATH=$MOUNT/bin:$MOUNT/sbin:$MOUNT/usr/bin:$MOUNT/usr/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/opt/sbin
    
    start() {
        mount.davfs https://webdav.yandex.ru /opt/tmp/ya_disk -o rw < /opt/etc/davfs2/dav.inp
    }
    
    stop() {
        umount /opt/tmp/ya_disk
    }
    
    case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
        ;;
        *)
        echo "Usage: $0 {start|stop|restart}"
        ;;
    esac
    Дать права этому файлу на исполнение.
    Не забыть создать файл /opt/etc/davfs2/dav.inp с двумя строчками: имя юзера и пароль.

    При запуске в логе должен будет написать типа того:
    Jan 30 15:04:02 syslog: the server certificate is not trusted
    Jan 30 15:04:02 syslog: issuer: ld, yandex, ru
    Jan 30 15:04:02 syslog: subject: ITO, Yandex, Moscow, Russia, RU
    Jan 30 15:04:02 syslog: identity: webdav.yandex.ru
    Jan 30 15:04:02 syslog: accepted by user
    Еще я добавил в post-mount строчку:
    Code:
    rm /opt/var/run/mount.davfs/*.pid
    Потому что если с предыдущего запуска диск не был размонтирован, то получим:
    Either /opt/tmp/ya_disk is used by another process,
    or another mount process ended irregular
    Есть альтернативный вариант, упомянутый Eximido. Было бы здорово если бы он с нами поделился, какие реквизиты и чем забивать davfs2.conf
    wl500gp|128M|1.9.2.7-rtn-r4667|Entware|motion|davfs

  3. #78
    Join Date
    Oct 2011
    Location
    Moscow
    Posts
    8

    Question На что ругается?

    admin@RT-N66U:/tmp/mnt/sdb2/asusware/bin# DropboxTorrentsWatch.py
    Getting folder TorrentDir to /mnt/sdb2/Torrent/Watch
    Traceback (most recent call last):
    File "/opt/bin/DropboxTorrentsWatch.py", line 99, in <module>
    main()
    File "/opt/bin/DropboxTorrentsWatch.py", line 89, in main
    if not os.path.exists(new_path):
    File "/opt/lib/python2.7/genericpath.py", line 18, in exists
    os.stat(path)
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 43-44: ordinal not in range(128)

  4. #79
    Quote Originally Posted by Daledreams View Post
    На что ругается?
    На кириллицу в имени торрент-файла.

  5. #80

    Забор торрентов из папки Dropbox

    #!/bin/bash

    #DBOX="/dropbox_uploader.sh -f /.dropbox_uploader"
    DBOX=/dropbox_uploader.sh

    $DBOX list Torrents | grep "^ \[F\] " | sed "s|^ \[F\] ||g" |
    while read item
    do
    if [ "$item" == "" ]
    then
    exit 0
    else
    $DBOX download "/Torrents/$item" "/var/lib/transmission-daemon/info/watch-dir/$item"
    chmod 666 "/var/lib/transmission-daemon/info/watch-dir/$item"
    $DBOX delete "/Torrents/$item"
    fi
    done

  6. #81

    Torrents via Dropbox 2

    Отдельной темы у нас по этому вопросу нет, поэтому напишу здесь. Предлагаю ещё один вариант для реализации того же механизма: вы будете бросать torrent-файлы в папку Dropbox'а, а роутер забирать их оттуда и брать в работу. Это решение обходится без python'а и использует Dropbox-Uploader, написанный на bash'е. Соответствующий пакет MercuryV уже добавил в репозиторий:
    Code:
    opkg install cron curl dropbox-uploader transmission-web
    Определите в /opt/etc/transmission/settings.json папку, куда будет скачиваться torrent-контент и поместите в /opt/etc/cron.5mins исполняемый скрипт следующего содержания:
    Code:
    #!/opt/bin/bash
    
    dropbox_uploader list | grep -iE "^ \[F\] .+\.torrent$" | sed "s|^ \[F\] ||g" | \
    while read item
    do
        dropbox_uploader download "$item" "/opt/etc/transnmission/watchdir/$item"
        dropbox_uploader delete "$item"
    done
    Скрипт будет периодически забирать новые torrent-файлы, появившиеся в папке аккаунта Dropbox, и, в отличие от питоновской версии, не будет пробуксовывать на кириллических именах. Скрипт разборчив, он не будет «засасывать» из папки Dropbox'а никакой мусор, только torrent-файлы. Далее необходимо создать приложение Dropbox, пройдя по этой ссылке и выбрав:
    • App type: Core,
    • App name: придумайте сами имя для вашего приложения,
    • Permission type: App folder,
    • Нажмите кн.«Create app»,
    • Name of app folder: Torrents,
    • Нажмите «Update».

    Скопируйте App key, App secret, они понадобятся для подтверждения доступа dropbox-uploader'а на следующем шаге. Запустите на роутере dropbox-uploader без каких-либо параметров и введите:
    • App key — ясно,
    • App secret — ясно,
    • Access level [a/f]: a,
    • …it's ok? [y/n]: y,
    • Token request. На этом шаге необходимо скопировать предложенный в консоли URL в строку браузера и нажать на появившейся web-страничке кнопку «Можно». Только после этого возвращайтесь к консоли и нажимайте Enter.


    Настройка закончена. Перегрузите роутер и попробуйте скрипты в действии. Любой torrent-файл, брошенный в папку Приложении\Torrents Dropbox-аккаунта должен исчезать из неё в течение пяти минут. Это означает, что роутер «принял» торрент в работу.
    Last edited by ryzhov_al; 19-04-2013 at 19:20.

  7. #82
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by ryzhov_al View Post
    ...
    вы будете бросать torrent-файлы в папку Dropbox'а, а роутер забирать их оттуда и брать в работу.
    ...
    Скрипт будет периодически забирать новые torrent-файлы, появившиеся в папке аккаунта Dropbox...
    ...
    Скрипт разборчив, он не будет «засасывать» из папки Dropbox'а никакой мусор, только torrent-файлы.
    ...
    Любой torrent-файл, брошенный в папку Приложении\Torrents Dropbox-аккаунта должен исчезать из неё в течение пяти минут. Это означает, что роутер «принял» торрент в работу.

    Quote Originally Posted by ryzhov_al View Post
    На хабре где-то пробегала статья о совместном использовании DropBox и торрент-клиента для автоматизации закачек
    ...
    Так что не исключено, что мы с вами в этом деле будем первые.
    т.е. можно использовать DrBx как remoteDL с отложенным сливом на ПК?
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  8. #83
    Насчёт слива на ПК сомневаюсь: в API Dropbox'а всё ещё есть жёсткое ограничение на максимальный размер передаваемого файла ~150МБ.

    Папка Dropbox'а предлагается в качестве «окошка обслуживания» торрентов: через него можно взаимодействовать с торрент-клиентом на роутере даже за всякими тройными NAT'ами и серыми IP.
    Доводя идею «окна обслуживания» до логического конца, могу предложить скрипт, который будет выкладывать в DropBox-папку «файл-квитанцию», появление которой будет говорить об окончании закачки. Для этого надо в /opt/etc/transmission/settings.json добавить строчки:
    Code:
        "script-torrent-done-enabled": true,
        "script-torrent-done-filename": "/opt/usr/sbin/torrent-done.sh",
    а в /opt/usr/sbin/torrent-done.sh положить следующее содержимое:
    Code:
    #!/opt/bin/bash
    
    [ -z "$TR_TORRENT_NAME" ] && exit 0
    
    echo "Donwload job done at `date`" > "/tmp/$TR_TORRENT_NAME.txt"
    dropbox_uploader upload "/tmp/$TR_TORRENT_NAME.txt"
    rm -f "/tmp/$TR_TORRENT_NAME.txt"
    Теперь идея «окошка» закончена:
    • вы просовываете в окошко голову^W^W^W кладёте в папку дропбокса torrent-файл(ы), который(е) хотите скачать,
    • в течение пяти минут torrent-файл(ы) из папки дропбокса исчезает(ют), что означает начало скачивания,
    • через некоторое время в той же папке появляется «квитанция» о том, что скачивание завершено.


    ЗЫ По результатам беседы написал для SNB скрипт в полтора десятка строк, который выполняет обе функции: забирает из дропбокса новые торренты и выкладывает на дропбокс репорты.
    Last edited by ryzhov_al; 20-04-2013 at 20:34.

  9. #84
    идея хороша! правда, rtorrent сам умеет отсылать письма по окончании закачки.
    RT-N66U Tomato Firmware 1.28.0000 MIPSR2-109 K26 USB AIO-64K
    WL-500W: 1.9.2.7-d-r2624 + huawei 353 - дачный интернет

  10. #85

    Облако Mail.Ru

    К облаку mail.ru, предлагающему 1ТБ бесплатного места можно подключиться via WebDAV.

    Code:
    https://webdav.cloud.mail.ru/
    PS Такой же глюк при использовании davfs2: читаются файлы нормально, а вот записать в облако ничего невозможно.
    Last edited by ryzhov_al; 21-12-2013 at 16:16.

  11. #86
    21-го апреля зарелизился davfs2 версии 1.5.0.

    Согласно описанию разработчика, довольно много всего было исправлено и добавлено. Из интересного - новая опция minimize_mem, позволяющая сократить размер зажираемой этим софтом оперативной памяти за счет выгрузки тех метаданных, которые некоторое время не использовались (а в старых версиях они хранятся безгранично долго).

    Лично мне удалось собрать новую версию davfs2 под OpenWrt в основном путем выкидывания старых патчей без составления новых.
    Возможно, не лучшее решение, но пока не было времени детально разбираться - а оно и без них работает.

    Рецепт под wrtшную среду сборки: http://fs.erinome.net/openwrt/packages/davfs2


    ЗЫ: Ответ из серии "два года спустя". %)
    Quote Originally Posted by MercuryV View Post
    Quote Originally Posted by Eximido View Post
    Если, например, возжелать скопировать 1ГБ-файл с флешки, то сначала davfs2 этот файл откопирует в директорию кэша (на той же самой флешке!), а только потом оттуда начнет заливать его на удаленный сервер. В результате лишняя операция копирования, которая тратит немало и реального, и процессорного времени впустую, и обеспечивает ненужный износ флешки
    Есть вариант заливать/сливать файлы "напрямую" - консольный клиент cadaver. (см. пример использования). Правда тут проявляется другой недостаток - cadaver интерактивный.
    Как раз этот самый предлагаемый пример использования я сам и описывал в свое время. )
    На днях добавил описание костыльного решения для обхода интерактивности кадавера.

  12. #87
    Вот это репорт! Спасибо.
    Quote Originally Posted by Eximido View Post
    Лично мне удалось собрать новую версию davfs2 под OpenWrt в основном путем выкидывания старых патчей без составления новых.
    Возможно, не лучшее решение, но пока не было времени детально разбираться - а оно и без них работает.
    Откуда брали этот патч? В целом с выкидыванием старых патчей согласен, вызывает только сомнение только полезность выкинутого hunk'а:
    Code:
    --- a/src/webdav.c 2012-08-03 16:09:25.000000000 +0400
    +++ b/src/webdav.c 2012-08-03 15:32:26.000000000 +0400
    @@ -1258,7 +1258,7 @@
         char *out = buf;
     
         iconv(conv, NULL, NULL, &out, &outsize);
    - if (iconv(conv, &in, &insize, &out, &outsize) >= 0
    + if (iconv(conv, (const char **)&in, &insize, &out, &outsize) >= 0
                 && insize == 0 && outsize >= MB_LEN_MAX) {
             memset(out, 0, MB_LEN_MAX);
             free(*s);
    Можете у себя упростить зависимости пакета.

    Обновлённый пакет работоспособен: проверил создание\удаление папок\файлов. Копирование гигабайтных файлов туда-сюда с проверкой контрольной суммы результата. Пакет нормально отрабатывает ситуацию, когда davfs останавливают и запускают снова, в этом случае недосинхренный кэш заканчивает синхронизацию, словно остановки davfs не было.
    В процессе работы davfs2 ведёт себя вполне достойно. Много памяти не ест:
    Code:
    admin@RT-N66U:/tmp/home/root# ps -A --sort -rss -o comm,pmem,rss,vsz
    COMMAND         %MEM   RSS    VSZ
    3proxy           1.5  3776   7284
    mc               1.1  2756   6384
    mount.davfs      0.8  1976   5376
    httpd            0.4  1180   3912
    u2ec             0.4  1024   2040
    u2ec             0.4  1024   2040
    u2ec             0.4  1024   2040
    Процессорных ресурсов тоже не много потребляет:
    Code:
    admin@RT-N66U:/tmp/home/root# top
    top - 15:24:03 up 18:51,  0 users,  load average: 0.27, 0.37, 0.27
    Tasks:  67 total,   2 running,  65 sleeping,   0 stopped,   0 zombie
    Cpu(s): 15.8%us,  8.3%sy,  0.0%ni, 71.3%id,  0.0%wa,  0.0%hi,  4.6%si,  0.0%st
    Mem:    239796k total,   175880k used,    63916k free,     1092k buffers
    Swap:   489848k total,     2112k used,   487736k free,   133608k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    24182 nobody    15   0  3784 1016  704 R 15.2  0.4   0:07.06 mount.davfs
    24189 admin     16   0  1624  664  500 R  1.0  0.3   0:00.11 top
    24196 admin     25   0  1424  396  340 S  0.7  0.2   0:00.02 rrd.sensors.sh
    24192 admin     20   0  1428  376  316 S  0.3  0.2   0:00.01 run-parts
    24247 admin     25   0  1068  396  324 S  0.3  0.2   0:00.01 df
    Опцию minimize_mem я включаю по умолчанию.
    Last edited by ryzhov_al; 24-04-2014 at 13:17.

  13. #88
    Quote Originally Posted by ryzhov_al View Post
    Откуда брали этот патч?
    Сейчас уже трудно сказать, но без него под OpenWrt пакет не собирается в виду отсутствия sys/xattr.h.

    Quote Originally Posted by ryzhov_al View Post
    Можете у себя упростить зависимости пакета.
    Спасибо, пофиксим.

    Хотя не совсем согласен с таким упрощением. Например, без kmod-fuse оно работать не будет - так что выкидывать libfuse кажется некорректным.
    Аналогично для libopenssl.
    Last edited by Eximido; 24-04-2014 at 13:37.

  14. #89
    Quote Originally Posted by Eximido View Post
    Хотя не совсем согласен с таким упрощением. Например, без kmod-fuse оно работать не будет - так что выкидывать libfuse кажется некорректным.
    Аналогично для libopenssl.
    1) На отсутствие у нас kmod-fuse не смотрите, у нас репозиторий не привязан к ядру,
    2) на libfuse пакет больше не завязан, можете проверить сами с помощью ldd,
    3) libopenssl подтянется автоматически как суб-зависимость libneon.

  15. #90
    доброго времени суток. не подскажите, что в davfs2.conf можно подправить, чтобы убрать вот такие записи в log-e

    Code:
    RT-N66U mark.err syslog: open files exceed max cache size by 5474 MiBytes
    увеличение размера кэша ничего не дало. заранее спасибо.

    UPD: видимо я по дурости задал слишком большой размер....
    'Поставил не намного больше, чем в сообщении, и всё стало хорошо.
    Last edited by Omega; 27-08-2014 at 19:59. Reason: upd
    RT-N66U Tomato Firmware 1.28.0000 MIPSR2-109 K26 USB AIO-64K
    WL-500W: 1.9.2.7-d-r2624 + huawei 353 - дачный интернет

Page 6 of 7 FirstFirst ... 4567 LastLast

Similar Threads

  1. Монтирование NFS
    By CraFT in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 337
    Last Post: 17-01-2014, 13:31
  2. Вопрос по проверке диска (e2fsck)
    By VadimVB in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 67
    Last Post: 29-04-2012, 10:21

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •