URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID14
Нить номер: 1116
[ Назад ]

Исходное сообщение
"как проверить 'живучесть' windows-share"

Отправлено oradm , 07-Дек-06 01:32 
Доброй ночи
Есть задача писать apache-ским процессом (php linux) файлики в подмонтированную (mount -t smbfs) windows share. И все бы ничего, но когда windows машина перезагружается (по разным причинам, я её не контролирую), шара отваливается, а процесс продолжает писать на диск (думая что она там еще есть!) в ту директорию, к которой была подмонтирована windows share. А не должен. Он должен заорать что у него проблемы или перемонтировать. Что делать?
smbc не подходит. Потому что сильно глючит.

Содержание

Сообщения в этом обсуждении
"как проверить 'живучесть' windows-share"
Отправлено Vitaliy , 07-Дек-06 09:50 
>Доброй ночи
>Есть задача писать apache-ским процессом (php linux) файлики в подмонтированную (mount -t
>smbfs) windows share. И все бы ничего, но когда windows машина
>перезагружается (по разным причинам, я её не контролирую), шара отваливается, а
>процесс продолжает писать на диск (думая что она там еще есть!)
>в ту директорию, к которой была подмонтирована windows share. А не
>должен. Он должен заорать что у него проблемы или перемонтировать. Что
>делать?
>smbc не подходит. Потому что сильно глючит.


Попробуйте для этого связку FUSE + SMBNetFS -- http://fuse.sourceforge.net
SMBNetFS периодически сканирует сетку на живучесть шар и перестраивает дерево смонтированых их. Всё это настраивается в конфиг-файле SMBNetFS.


"как проверить 'живучесть' windows-share"
Отправлено kaatzo , 07-Дек-06 14:03 
я бы это зделал програмно, если скрипт написан на PHP, вообще нет проблем, всё открито, надо только найти то место в котором происходит запись в подмонтированую папку. Если не разберётесь скиньте скрипт, будет время помогу..

"как проверить 'живучесть' windows-share"
Отправлено oradm , 07-Дек-06 17:08 
>я бы это зделал програмно, если скрипт написан на PHP, вообще нет
>проблем, всё открито, надо только найти то место в котором происходит
>запись в подмонтированую папку. Если не разберётесь скиньте скрипт, будет время
>помогу..
В самом php на эту тему ничего нет. Да и видит он эту удаленную директорию как локальную. Он все равно туда напишет.



"как проверить 'живучесть' windows-share"
Отправлено kaatzo , 07-Дек-06 20:52 
>>я бы это зделал програмно, если скрипт написан на PHP, вообще нет
>>проблем, всё открито, надо только найти то место в котором происходит
>>запись в подмонтированую папку. Если не разберётесь скиньте скрипт, будет время
>>помогу..
>В самом php на эту тему ничего нет. Да и видит он
>эту удаленную директорию как локальную. Он все равно туда напишет.


...да но если скрипт не будет иметь куда писать (то есть шара не подмонтировалась) то тут его можно будет и переписать, пару лишних (if'фоф) и всё Ок. Ну накрайняк написать шелл-скрипт который будет запускатся по cron'у и переодически проверять наличее ресурса, и если шара не наблюдается то монтировать её....


"как проверить 'живучесть' windows-share"
Отправлено oradm , 07-Дек-06 22:29 
>по cron'у и переодически проверять наличее ресурса, и если шара не
>наблюдается то монтировать её....

Алгоритм то понятен и прост...
А как проверить-то? Ведь линукс в случае перезагрузки windows-машины не знает об этом и думает, что все нормально. И в /etc/mtab запись остается! И штатных средств самбы или mount проверить живость шары вроде как не найдено. Он просто продолжает писать в точку монтирования, но уже на локальный диск, а не на удаленную шару. И изменить эту ситуацию удается только заново примонтировав её... Но это уже вмешательство оператора. Чего не хотелось бы. Особенно ночью :)



"как проверить 'живучесть' windows-share"
Отправлено Игорян , 08-Дек-06 02:57 
1) Попробуй cifs вместо smbfs - должно помочь.
2) Положи на ету шару, служащий маркером, файлик.
В php проверь на его существование.
Есть файлик - шара не отвалилась, нет - обратное.
Аналогично с кроном или шелл скриптом.

"как проверить 'живучесть' windows-share"
Отправлено oradm , 08-Дек-06 12:10 
>1) Попробуй cifs вместо smbfs - должно помочь.
>2) Положи на ету шару, служащий маркером, файлик.
>В php проверь на его существование.
>Есть файлик - шара не отвалилась, нет - обратное.
>Аналогично с кроном или шелл скриптом.

Вот за это спасибо огромное


"как проверить 'живучесть' windows-share"
Отправлено shpi0 , 19-Дек-06 17:05 
>Доброй ночи
>Есть задача писать apache-ским процессом (php linux) файлики в подмонтированную (mount -t
>smbfs) windows share. И все бы ничего, но когда windows машина
>перезагружается (по разным причинам, я её не контролирую), шара отваливается, а
>процесс продолжает писать на диск (думая что она там еще есть!)
>в ту директорию, к которой была подмонтирована windows share. А не
>должен. Он должен заорать что у него проблемы или перемонтировать. Что
>делать?
>smbc не подходит. Потому что сильно глючит.

Я бы наверно попробовал добавить в скрипт условие, которое бы например пинговало windows-машину и если ответа нет - следовательно она недоступна - отмонтировало шару и пыталось потом снова подмонтировать :)
Хотя как я вижу проблема решена уже, наверно более профессиональным способом :)