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

Исходное сообщение
"Помогите написать скрипт"

Отправлено xfree86 , 18-Окт-07 13:17 
Привет.
Помогите написать скрипт

Необходимо отмонтировать все разделы, если они примонтированы...

Тоесть
на входе переменная $DEV... Пусть $DEV=/dev/hda

Нужно проверить , есть ли примонтированные разделы, и если есть, то отмонтировать их...

PS man mount и man umount не предлагать


Содержание

Сообщения в этом обсуждении
"Помогите написать скрипт"
Отправлено newser , 18-Окт-07 13:26 
>
>PS man mount и man umount не предлагать

Это ещё почему???


"Помогите написать скрипт"
Отправлено xfree86 , 18-Окт-07 13:37 
>>
>>PS man mount и man umount не предлагать
>
>Это ещё почему???

Потому что я знаю как пользоваться этими командами...
А мне нужно на их основе написать скрипт... чтобы он не вываливался при umount устрояства которое не примантировано и прочее... обработал исключения и продолжал дальше выполнять что требуется


"Помогите написать скрипт"
Отправлено vic , 18-Окт-07 13:55 
>>>
>>>PS man mount и man umount не предлагать
>>
>>Это ещё почему???
>
>Потому что я знаю как пользоваться этими командами...
>А мне нужно на их основе написать скрипт... чтобы он не вываливался
>при umount устрояства которое не примантировано и прочее... обработал исключения и
>продолжал дальше выполнять что требуется

эти утилиты равно как и любые другие возвращают результат выполнения. анализируйте их.


"Помогите написать скрипт"
Отправлено phpcoder , 19-Окт-07 10:45 
[...]
>PS man mount и man umount не предлагать

man mountpoint(1) тогда ;-) (правда, он не везде есть)

[c0der@rock ~]$ rpm -qf =mountpoint
SysVinit-2.86-alt1

[c0der@rock ~]$ man mountpoint
MOUNTPOINT(1)                    Linux System Administrator's Manual                    MOUNTPOINT(1)

NAME
       mountpoint - see if a directory is a mountpoint

SYNOPSIS
       /bin/mountpoint [-q] [-d] /path/to/directory
       /bin/mountpoint -x /dev/device

DESCRIPTION
       Mountpoint checks if the directory is a mountpoint.


"Помогите написать скрипт"
Отправлено L0n3R4ng3r , 19-Окт-07 14:11 
>[оверквотинг удален]
>
>Необходимо отмонтировать все разделы, если они примонтированы...
>
>Тоесть
>на входе переменная $DEV... Пусть $DEV=/dev/hda
>
>Нужно проверить , есть ли примонтированные разделы, и если есть, то отмонтировать
>их...
>
>PS man mount и man umount не предлагать

#! /bin/bash -x

DEV="/dev/hdb"
while [ "1" -eq "1" ]; do
mnt=$(df | grep "$DEV")
if [ ! -z "$mnt" ]; then
    DEV_P=$(df | grep "$DEV" | awk '{print $1}')
    echo "$DEV_P mount"
    fuser -km $DEV_P
    umount $DEV_P
    echo "$DEV_P successfully unmounted"
else
    echo "no mounted"
    exit
fi
done


"Помогите написать скрипт"
Отправлено L0n3R4ng3r , 19-Окт-07 17:56 
>[оверквотинг удален]
>>
>>Необходимо отмонтировать все разделы, если они примонтированы...
>>
>>Тоесть
>>на входе переменная $DEV... Пусть $DEV=/dev/hda
>>
>>Нужно проверить , есть ли примонтированные разделы, и если есть, то отмонтировать
>>их...
>>
>>PS man mount и man umount не предлагать

upd
#! /bin/bash -x

DEV="/dev/hdb"
while [ "1" -eq "1" ]; do
mnt=$(df | grep "$DEV")
if [ ! -z "$mnt" ]; then
    DEV_P=$(df | grep -m 1 "$DEV" | awk '{print $1}')

    echo "$DEV_P mount"
    fuser -km $DEV_P
    umount $DEV_P
    echo "$DEV_P successfully unmounted"
else
    echo "no mounted"
    exit
fi
done



"Помогите написать скрипт"
Отправлено alex , 20-Мрт-08 21:51 
извините, не совсем по теме, но очень близко:
нам надо почти то же самое сделать (обнаружить, что устр-во подключено, смонтировать
и размонтировать), только в пользовательской программе (на языке С), а не скрипт...