Подключаем Яндекс диск

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1142
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 21 май 2016, 18:28

lichtenshtein, спасибо за сообщение об ошибке. Для arm и intel утилита empty исправлена. Для mipsel - будет позже.
PS Сообщение об empty ну никак к яндекс диску не относится.

pashinsky
Сообщения: 28
Зарегистрирован: 18 окт 2015, 14:02

Сообщение pashinsky » 22 май 2016, 22:39

Скрипт стартует только вручную, при перезагрузке самостоятельно не стартует и соответственно yandex не монтируется. При ручном запуске все запускается без ругани. Подскажите в чем некорректность?
/opt/etc/init.d/S12davfs

Код: Выделить всё

#!/bin/sh
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
kmodule_folder_group() {
    if ( !(lsmod | grep -q "^fuse") ); then
        modprobe fuse
    fi
    if [ ! -d /media/Main/yandex ]; then
        mkdir -p /media/Main/yandex
    fi
    if ( !(grep -q -E "^nobody:" /etc/group) ); then
        addgroup nobody
    fi
}
case "$1" in
    start)
        kmodule_folder_group
        mount.davfs https://webdav.yandex.ru /media/Main/yandex -o rw < /opt/etc/davfs2/secrets >/dev/null
        ;;
    stop)
        if ( (mount | grep -q yandex) ); then
            umount /media/Main/yandex
        fi
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        ;;
esac
Свернуть
MQ-WITI_256 3.4.3.9-099_5aa2a75, Entware-3x, DebianChroot

Dr.Acid
Сообщения: 137
Зарегистрирован: 26 авг 2015, 22:46

Сообщение Dr.Acid » 22 май 2016, 23:54

pashinsky писал(а):Источник цитаты при перезагрузке самостоятельно не стартует и соответственно yandex не монтируется.

Так скрипт не стартует, или соединение не монтируется? Возможно, при загрузке он стартует, но соединения с интернетом ещё нет, вот он и не отрабатывает, как надо. Сталкивался уже с таким. Один из способов(самый простой) - поставить в скрипт задержку.

pashinsky
Сообщения: 28
Зарегистрирован: 18 окт 2015, 14:02

Сообщение pashinsky » 23 май 2016, 08:07

Dr.Acid писал(а):Источник цитаты
pashinsky писал(а):Источник цитаты при перезагрузке самостоятельно не стартует и соответственно yandex не монтируется.

Так скрипт не стартует, или соединение не монтируется? Возможно, при загрузке он стартует, но соединения с интернетом ещё нет, вот он и не отрабатывает, как надо. Сталкивался уже с таким. Один из способов(самый простой) - поставить в скрипт задержку.

Не стартует скрипт, потому как при команде /opt/etc/init.d/S12davfs start он прекрасно запускается и яндекс диск спокойно монтируется. Если при запущенном скрипте дать команду повторно, то:

Код: Выделить всё

# /opt/etc/init.d/S12davfs start
mount.davfs: https://webdav.yandex.ru is already mounted on /media/Main/yandex
MQ-WITI_256 3.4.3.9-099_5aa2a75, Entware-3x, DebianChroot

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1142
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 23 май 2016, 08:34

pashinsky писал(а):Источник цитаты потому как при команде

Ну и что. Скрипт наверняка стартует, но при выполнении возникает ошибка. Посмотрите на этапы его выполнения и проверьте, на каком из них ошибка по результатам загрузки (загрузка модуля ядра, создание группы, папки). Потом вставьте там вызов logger, для уточнения. Если на самом последнем этапе (монтирование), то вставляйте задержку.

pashinsky
Сообщения: 28
Зарегистрирован: 18 окт 2015, 14:02

Сообщение pashinsky » 29 май 2016, 11:10

Dr.Acid писал(а):Источник цитаты
pashinsky писал(а):Источник цитаты при перезагрузке самостоятельно не стартует и соответственно yandex не монтируется.

Так скрипт не стартует, или соединение не монтируется? Возможно, при загрузке он стартует, но соединения с интернетом ещё нет, вот он и не отрабатывает, как надо. Сталкивался уже с таким. Один из способов(самый простой) - поставить в скрипт задержку.

Вы были правы, при перезагрузке скрипт стартует (видно из лога), но яндекс.диск не монтируется. Если добавить правило в cron (раз в минуту) то через минуту все прекрасно монтируется. Одно не устраивает в таком варианте - лог забит записями о запуске davfs. Как лучше/правильней поставить скрипт в задержку при перезагрузке роутера?
Скрипт

Код: Выделить всё

#!/bin/sh
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

kmodule_folder_group() {
    if ( !(lsmod | grep -q "^fuse") ); then
	modprobe fuse
    fi
    if [ ! -d /media/Main/yandex.disk ]; then
	mkdir -p /media/Main/yandex.disk
    fi
    if ( !(grep -q -E "^nobody:" /etc/group) ); then
	addgroup nobody
    fi
}
case "$1" in
    start)
	kmodule_folder_group
	mount.davfs https://webdav.yandex.ru /media/Main/yandex.disk -o rw < /opt/etc/davfs2/secrets >/dev/null
	;;
    stop)
	if ( (mount | grep -q yandex) ); then
	    umount /media/Main/yandex.disk
	fi
	;;
    restart)
	stop
	start
	;;
    *)
	echo "Usage: $0 {start|stop|restart}"
	;;
esac
Свернуть

А также не получается разобраться с таким:
 

Код: Выделить всё

/opt/etc/init.d/S99davfs restart
/opt/etc/init.d/S99davfs: line 32: stop: not found
/opt/etc/init.d/S99davfs: line 32: start: not found
Свернуть
Последний раз редактировалось pashinsky 29 май 2016, 11:20, всего редактировалось 1 раз.
MQ-WITI_256 3.4.3.9-099_5aa2a75, Entware-3x, DebianChroot

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1142
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 29 май 2016, 11:15

pashinsky писал(а):Источник цитаты Как лучше/правильней поставить скрипт в задержку при перезагрузке роутера?

С этим сюда - Linux - все вопросы тут
Попрошу никого на подобные вопросы (offtopic) не отвечать. Вы проанализировали, что происходит, где скрипт не срабатывает? Может просто modprobe нужно на insmod заменить.
Владельцам роутеров с прошивкой Падавана стоит изучить это
asus.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

pashinsky
Сообщения: 28
Зарегистрирован: 18 окт 2015, 14:02

Сообщение pashinsky » 29 май 2016, 11:34

Добавлял я в скрипт "Выполнить после полного запуска маршрутизатора правило"
 

Код: Выделить всё

#!/bin/sh

### Custom user script
### Called after router started and network is ready

### Example - load ipset modules
#modprobe ip_set
#modprobe ip_set_hash_ip
#modprobe ip_set_hash_net
#modprobe ip_set_bitmap_ip
#modprobe ip_set_list_set
#modprobe xt_set
/opt/etc/init.d/S12davfs start
Свернуть

Результата -0
MQ-WITI_256 3.4.3.9-099_5aa2a75, Entware-3x, DebianChroot

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1142
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 29 май 2016, 11:39

Последний третий раз спрашиваю? Какая часть скрипта не выполняется? После понимания этого и нужно искать решение!
PS Я бы добавил монтирование после WAN up

lichtenshtein
Сообщения: 16
Зарегистрирован: 15 апр 2016, 03:24

Сообщение lichtenshtein » 02 июн 2016, 21:58

pashinsky писал(а):Источник цитаты Добавлял я в скрипт "Выполнить после полного запуска маршрутизатора правило"
 

Код: Выделить всё

#!/bin/sh

### Custom user script
### Called after router started and network is ready

### Example - load ipset modules
#modprobe ip_set
#modprobe ip_set_hash_ip
#modprobe ip_set_hash_net
#modprobe ip_set_bitmap_ip
#modprobe ip_set_list_set
#modprobe xt_set
/opt/etc/init.d/S12davfs start
Свернуть

Результата -0


Добавьте sleep 10 перед строчкой и уберите S из названия.
Truumann


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 3 посетителя :: 1 зарегистрированный, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: CommonCrawl [Bot] и 2 гостя