PDA

Bekijk de volledige versie : проблема с автомоунтом samb'ы



ooooo1
14-03-2009, 00:40
Проблема в том что даже при добавлении в cron задачу
типа
/sbin/insmod /opt/lib/modules/smbfs.o
/opt/bin/smbmount //192.168.1.99/public /opt/ados/_all/NAS -o rw,guest
Не монтируется

также использовал post-mount
таже проблема


После этого попробовал засунул в /opt/etc/init.d/S98mount(создав файл)
это


#!/bin/sh
#script: mount to mountpoint "checkdir" and create folder when not present
#the script toggles the mount option
#you can use this script as often you need, just adjust share and checkdir
#written by newbiefan for asus users

share=//192.168.1.99/public
#dirname of mountpoint
checkdir=/opt/ados/_all/NAS

logger "Trying to smbmount/umount external nas $share to/from $checkdir"

if mount | grep $checkdir ; then #is already mounted
/opt/bin/smbumount $checkdir
logger "$checkdir unmounted"
rmdir $checkdir
logger "Directory &checkdir reoved"
echo "umount $share and removed directory $checkdir"
else # is not mounted - check for existing dir
if [ -d $checkdir ] ; then
logger "Directory $checkdir exists, nothing to do"
else
mkdir $checkdir
logger "Directory $checkdir created"
fi
/opt/bin/smbmount $share $checkdir -o rw,guest
sleep 1
logger "SMB-share $share mounted to $checkdir"
echo "SMB-share $share mounted to $checkdir"
fi

в логах появилось

Mar 14 01:16:46 admin: Trying to smbmount/umount external nas //192.168.1.99/public to/from /opt/ados/_all/NAS
Mar 14 01:16:47 admin: Directory /opt/ados/_all/NAS created
Mar 14 01:16:48 admin: SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

Захожу в папку NAS, а она пустая.(((((((((

Тогда запускаю вручную

# ./S98mount
Anonymous login successful
SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

в логе тоже самое
Mar 14 01:32:14 admin: Trying to smbmount/umount external nas //192.168.1.99/public to/from /opt/ados/_all/NAS
Mar 14 01:32:15 admin: Directory /opt/ados/_all/NAS created
Mar 14 01:32:17 admin: SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

Все начинает работать.

Прошивка: 1.9.2.7-10

vectorm
14-03-2009, 09:29
Проблема в том что даже при добавлении в cron задачу
типа
/sbin/insmod /opt/lib/modules/smbfs.o
/opt/bin/smbmount //192.168.1.99/public /opt/ados/_all/NAS -o rw,guest
Не монтируется

также использовал post-mount
таже проблема


После этого попробовал засунул в /opt/etc/init.d/S98mount(создав файл)
это


#!/bin/sh
#script: mount to mountpoint "checkdir" and create folder when not present
#the script toggles the mount option
#you can use this script as often you need, just adjust share and checkdir
#written by newbiefan for asus users

share=//192.168.1.99/public
#dirname of mountpoint
checkdir=/opt/ados/_all/NAS

logger "Trying to smbmount/umount external nas $share to/from $checkdir"

if mount | grep $checkdir ; then #is already mounted
/opt/bin/smbumount $checkdir
logger "$checkdir unmounted"
rmdir $checkdir
logger "Directory &checkdir reoved"
echo "umount $share and removed directory $checkdir"
else # is not mounted - check for existing dir
if [ -d $checkdir ] ; then
logger "Directory $checkdir exists, nothing to do"
else
mkdir $checkdir
logger "Directory $checkdir created"
fi
/opt/bin/smbmount $share $checkdir -o rw,guest
sleep 1
logger "SMB-share $share mounted to $checkdir"
echo "SMB-share $share mounted to $checkdir"
fi

в логах появилось

Mar 14 01:16:46 admin: Trying to smbmount/umount external nas //192.168.1.99/public to/from /opt/ados/_all/NAS
Mar 14 01:16:47 admin: Directory /opt/ados/_all/NAS created
Mar 14 01:16:48 admin: SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

Захожу в папку NAS, а она пустая.(((((((((

Тогда запускаю вручную

# ./S98mount
Anonymous login successful
SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

в логе тоже самое
Mar 14 01:32:14 admin: Trying to smbmount/umount external nas //192.168.1.99/public to/from /opt/ados/_all/NAS
Mar 14 01:32:15 admin: Directory /opt/ados/_all/NAS created
Mar 14 01:32:17 admin: SMB-share //192.168.1.99/public mounted to /opt/ados/_all/NAS

Все начинает работать.

Прошивка: 1.9.2.7-10
Ну так правильно - скрипт, если каталог есть - он его отмонтирует и удаляет.
Соответственно - в удаленный каталог примонтировать ничего нельзя.
При повторном запуске скрипт создает каталог и монтирует в него.
Переделывайте скрипт - под Вашу задачу удалять каталог не нужно, достаточно проверять его на пустоту - если он пустой, монтировать NAS, если не пустой - ничего не делать.

ooooo1
14-03-2009, 12:02
Ну так правильно - скрипт, если каталог есть - он его отмонтирует и удаляет.
Соответственно - в удаленный каталог примонтировать ничего нельзя.
При повторном запуске скрипт создает каталог и монтирует в него.
Переделывайте скрипт - под Вашу задачу удалять каталог не нужно, достаточно проверять его на пустоту - если он пустой, монтировать NAS, если не пустой - ничего не делать.

И так делал - безрезультатно.

яж говорю при запуски вручную(из консоль) скрипт работает.
А если вставлять автомонирование в post-mount или cron или init.d - то полный ноль. только в логах пишет что примонтировал, а на факте ничего.

Фантом

vectorm
14-03-2009, 14:14
И так делал - безрезультатно.

яж говорю при запуски вручную(из консоль) скрипт работает.
А если вставлять автомонирование в post-mount или cron или init.d - то полный ноль. только в логах пишет что примонтировал, а на факте ничего.

Фантом
Запустите вручную скрипт 2 раза подряд - гарантирую, что диск пропадет.

azhur
14-03-2009, 16:09
Возможно влияет нечто из параметров окружения, типа PATH, HOME, LANG, и т.п.
Так как скрипты, когда на роутер никто не залогинен, выполняются в среде с минимально-дефолтными настройками.
Попробуйте в начале скрипта добавить те же экспорты, что сделаны в .profile у пользователя под которым скрипт работает.

ooooo1
14-03-2009, 17:17
Запустите вручную скрипт 2 раза подряд - гарантирую, что диск пропадет.
так ясно из скрипта .
1 запуск - монтирует, а если нет папки автоматически создает.
2 запуск - демонтирует с удалением(вроде) папки.
в скрипте Нет проблем!

Пжлста внимательно прочтите суть проблемы.

vectorm
14-03-2009, 20:14
так ясно из скрипта .
1 запуск - монтирует, а если нет папки автоматически создает.
2 запуск - демонтирует с удалением(вроде) папки.
в скрипте Нет проблем!

Пжлста внимательно прочтите суть проблемы.
Я всегда внимательно читаю.
В скрипте ошибок не вижу, объясню его работу на пальцах, раз уж на то пошло:
\\\\\\ 1. проверяется примонтированность (начало 1 цикла ЕСЛИ)
if mount | grep $checkdir ; then #is already mounted
\\\\\\\ 2. отмонтируется примонтированный ранее
/opt/bin/smbumount $checkdir
logger "$checkdir unmounted"
\\\\\\\\ 3. удаляется целевой каталог
rmdir $checkdir
logger "Directory &checkdir reoved"
echo "umount $share and removed directory $checkdir"
\\\\\\\\\ 4. второе условие цикла ЕСЛИ (в противном случае)
else # is not mounted - check for existing dir
\\\\\\\\\ 5. ЕСЛИ не смонтирован, ТО обрабатывается второй цикл ЕСЛИ
if [ -d $checkdir ] ; then
logger "Directory $checkdir exists, nothing to do"
else
\\\\\\\\\ 6. каталог создается ТОЛЬКО в случае, ЕСЛИ шара ДО этого не была смонтирована, И каталога не было
mkdir $checkdir
logger "Directory $checkdir created"
\\\\\\\\\ 7. конец вложенного цикла ЕСЛИ
fi
\\\\\\\\\ 8. монтируем шару в каталог
/opt/bin/smbmount $share $checkdir -o rw,guest
sleep 1
logger "SMB-share $share mounted to $checkdir"
echo "SMB-share $share mounted to $checkdir"
\\\\\\\\\\ 9. конец первого цикла ЕСЛИ
fi

В вашем же случае, целевой каталог должен создаваться не только в 6 пункте, но и в начале 8, если его до этого не было.
Плюс - не во всем скрипте указаны полные пути - из-за этого может автоматом и не работать.
Надеюсь разжевал понятно.

KBac
01-12-2009, 11:18
столкнулся с аналогичной проблемой.
решение было найдено?