Как красивше из скрипта проверить, что сиди подмонтирован?
Модератор: Bizdelnick
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Как красивше из скрипта проверить, что сиди подмонтирован?
Просто любопытно.
Более красивые и правильные решения, чем типа
egrep '\W/media/cdrom0\W' /etc/mtab || mount /media/cdrom0
?
Альтернативный вариант - mount и игнорировать если оно уже того. Но mount возвращает 32 при уже смотированном диске, что в man объясняется многозначительным 'Mount failure'...
Более красивые и правильные решения, чем типа
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
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
Voice
- Сообщения: 1073
- Статус: столлманист
- ОС: Debian GNU/Linux
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
Можна что-то вроди того:
Код: Выделить всё
df | grep cdrom; if [ $? ]; then echo "Mounted"; else echo "Not mounted"; fi;"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
М. В. Ломоносов
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
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
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
А как вы планируете определять нужный из нескольких? Я кроме полного пути монтирования вижу только один вариант: имя устройства. Но в обоих этих случаях содержимое mtab (а лучше -- вывод mount без параметров) даёт однозначную информацию.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
Ок, значит пока пришли обратно к
Код: Выделить всё
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
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
так подключите к делу содержимое /etc/fstab.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
Намекните, каким образом, плз.
Debian GNU/Linux 4 -- AMD Athlon64 3000+ / Asus 7600GS -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
sergio, в /etc/fstab прописаны устройства и точки монтирования. вот и берите информацию из этого файла.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sergio
- Сообщения: 436
- Статус: Интересующийся новичок
- ОС: Debian GNU/Linux 4 & 5
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
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
Debian GNU/Linux 5 -- Dell (Vostro) 500 (Celeron M560 / iGM965) -- Gnome
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
sergio, наверно, я тебя огорчу своим imho-м, что универсального метода просто не существует.
ввиду того, что каждая юниксовая инсталляция абсолютно персональна.
даже типовых дистрибутивных решений и то — пруд пруди.
не говоря уж про некоторую расплывачатость самого понятия «а что есть cdrom?» и возможность наличия разного их количества (от 0 и выше).
так что надо останавливаться на каком-нибудь компромиссе.
ввиду того, что каждая юниксовая инсталляция абсолютно персональна.
даже типовых дистрибутивных решений и то — пруд пруди.
не говоря уж про некоторую расплывачатость самого понятия «а что есть cdrom?» и возможность наличия разного их количества (от 0 и выше).
так что надо останавливаться на каком-нибудь компромиссе.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
anonymous.ru
- Сообщения: 614
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
есть один вариант.
1) парсим /etc/fstab (ибо судя по команде в ТЗ монтирование сидюка должно быть там уже прописано )
2) используем udevinfo и бубен что бы определить описывает ли данная строчка монтирования именно сидюка (является ли блочное устройство - сиди приводом)
3)если сиди привод - проверяем смонтировано ли это устройство сейчас (лучше наверно через /proc/mounts)
4) если не смонтировано - монтируем.
понятно что весь фокус в пункте 2
также можно определить что данная строчка монтирует cd по косвенным признакам (таким как специфичные для cd опции монтирования) но это все не тру
можно также посмотреть какие мажоры связаны с драйвером cdrom ) и проверять их у файла )
вариантов полно )))
свобода для творчества.
думаю самое правильное - использовать udevinfo
1) парсим /etc/fstab (ибо судя по команде в ТЗ монтирование сидюка должно быть там уже прописано )
2) используем udevinfo и бубен что бы определить описывает ли данная строчка монтирования именно сидюка (является ли блочное устройство - сиди приводом)
3)если сиди привод - проверяем смонтировано ли это устройство сейчас (лучше наверно через /proc/mounts)
4) если не смонтировано - монтируем.
понятно что весь фокус в пункте 2
также можно определить что данная строчка монтирует cd по косвенным признакам (таким как специфичные для cd опции монтирования) но это все не тру
можно также посмотреть какие мажоры связаны с драйвером cdrom ) и проверять их у файла )
вариантов полно )))
свобода для творчества.
думаю самое правильное - использовать udevinfo
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
опять-таки не универсально. udev-а может и не быть. редкость, конечно, но...
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Rootlexx
- Бывший модератор
- Сообщения: 4471
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
Можно подключить DBus или /sys.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как красивше из скрипта проверить, что сиди подмонтирован?
Тем паче, редкость это только для более-менее свежих ядер. Для начальных ветки 2.6 -- "не такая уж и...", а для 2.4 -- так и вообще там udev-а не бывает.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж