Как красивше из скрипта проверить, что сиди подмонтирован?

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sergio »

Просто любопытно.
Более красивые и правильные решения, чем типа

egrep '\W/media/cdrom0\W' /etc/mtab || mount /media/cdrom0
?

Альтернативный вариант - mount и игнорировать если оно уже того. Но mount возвращает 32 при уже смотированном диске, что в man объясняется многозначительным 'Mount failure'...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение Voice »

Можна что-то вроди того:

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

df | grep cdrom; if [ $? ]; then echo "Mounted"; else echo "Not mounted"; fi;
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sergio »

Voice писал(а):
15.07.2007 00:12
Можна что-то вроди того:

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

df | grep cdrom; if [ $? ]; then echo "Mounted"; else echo "Not mounted"; fi;

Та же проблема, что с
grep cdrom /etc/mtab
- если приводов несколько, или что-то смотрировано с путями где есть .../...cdrom.../... - то у нас проблемы.
В остальном да, но... те же яйца, вид сбоку, как говорицо. =)
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение t.t »

sergio писал(а):
15.07.2007 00:28
если приводов несколько
А как вы планируете определять нужный из нескольких? Я кроме полного пути монтирования вижу только один вариант: имя устройства. Но в обоих этих случаях содержимое mtab (а лучше -- вывод mount без параметров) даёт однозначную информацию.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sergio »

t.t писал(а):
15.07.2007 01:16
sergio писал(а):
15.07.2007 00:28
если приводов несколько
А как вы планируете определять нужный из нескольких? Я кроме полного пути монтирования вижу только один вариант: имя устройства. Но в обоих этих случаях содержимое mtab (а лучше -- вывод mount без параметров) даёт однозначную информацию.

Ок, значит пока пришли обратно к

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

mount | egrep '\W/media/cdrom0\W' || mount /media/cdrom0

с тем дополнением, что путь должен быть именно к точке монтирования, про которую знает mount
Точки, через которые мы любим лазать на сиди, как то
/cdrom
/media/cdrom
здесь работать не будут.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sash-kan »

так подключите к делу содержимое /etc/fstab.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sergio »

sash-kan писал(а):
16.07.2007 12:26
так подключите к делу содержимое /etc/fstab.


Намекните, каким образом, плз.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sash-kan »

sergio, в /etc/fstab прописаны устройства и точки монтирования. вот и берите информацию из этого файла.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
sergio
Сообщения: 436
Статус: Интересующийся новичок
ОС: Debian GNU/Linux 4 & 5

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sergio »

sash-kan писал(а):
16.07.2007 18:07
sergio, в /etc/fstab прописаны устройства и точки монтирования. вот и берите информацию из этого файла.

Oh my God, я в курсе. Но у нормальных людей там прописано только /media/cdrom[0..9] ,
Добавлено
Хо-хо, а у многих нормальных людей в fstab и /dev/cdrom /mnt/cdrom бывает прописано... а у кого-то /dev/cd[a..], у кого-то /dev/hd[a..]... А SATA или скази значит /dev/sd[a..].
Так что с переносимостью такого скрипта будет хреновато...


а не те дополнительные два варианта, которыми мы на "дефолтный" сиди ссылаемся обычно. Значит, или в скрипте/вводе некто должен задавать полный путь к девайсу и править его на тот или иной привод, а обычное и короткое типа /cdrom не сработает, или я в скрипте должен проверять, что заданный "цдром" не ссылка, а если она, то выяснять куда и так рекурсивно находить /cdrom -> /media/cdrom -> /media/cdrom[0..9] на какое же устройство она таки указывает. А потом уже проверять по mount/mtab.
Угу, ну и тут значит каждый следующий вариант при раскрытии ссылок проверять по mount... пока не отыщецо...

Надо уточнить вопрос, видимо. Как можно "сделать шоб заработало" - я догадался. Меня тасазать интересовало как красивее и универсальнее, без оговорок мелким шрифтом "а если оно все равно не работает то..." и необходимости ломать голову что происходит, если оно в другом дистре или другой конфигурации таки не работает или работает не так.

ЗЫ. Возможно это у меня просто синдром человека, любящего точность и еще не смирившегося с тем, что тут очень много всего "на grep-ах, а если нефурычит то запускай терминал и ныряй"...
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sash-kan »

sergio, наверно, я тебя огорчу своим imho-м, что универсального метода просто не существует.
ввиду того, что каждая юниксовая инсталляция абсолютно персональна.
даже типовых дистрибутивных решений и то — пруд пруди.
не говоря уж про некоторую расплывачатость самого понятия «а что есть cdrom?» и возможность наличия разного их количества (от 0 и выше).
так что надо останавливаться на каком-нибудь компромиссе.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
anonymous.ru
Сообщения: 614

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение anonymous.ru »

есть один вариант.
1) парсим /etc/fstab (ибо судя по команде в ТЗ монтирование сидюка должно быть там уже прописано )
2) используем udevinfo и бубен что бы определить описывает ли данная строчка монтирования именно сидюка (является ли блочное устройство - сиди приводом)
3)если сиди привод - проверяем смонтировано ли это устройство сейчас (лучше наверно через /proc/mounts)
4) если не смонтировано - монтируем.

понятно что весь фокус в пункте 2
также можно определить что данная строчка монтирует cd по косвенным признакам (таким как специфичные для cd опции монтирования) но это все не тру
можно также посмотреть какие мажоры связаны с драйвером cdrom ) и проверять их у файла )
вариантов полно )))
свобода для творчества.
думаю самое правильное - использовать udevinfo
:drinks:
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение sash-kan »

anonymous.ru писал(а):
17.07.2007 18:46
думаю самое правильное - использовать udevinfo
опять-таки не универсально. udev-а может и не быть. редкость, конечно, но...
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4471
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение Rootlexx »

Можно подключить DBus или /sys.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Как красивше из скрипта проверить, что сиди подмонтирован?

Сообщение t.t »

sash-kan писал(а):
17.07.2007 21:41
udev-а может и не быть. редкость, конечно, но...
Тем паче, редкость это только для более-менее свежих ядер. Для начальных ветки 2.6 -- "не такая уж и...", а для 2.4 -- так и вообще там udev-а не бывает.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: