сайт
добавил немного фотографий в раздел "LUG :: Линуксовки"
http://kirov.lug.ru/lug/lug_meeting.shtml
← Апрель 2005 → | ||||||
2
|
3
|
|||||
---|---|---|---|---|---|---|
4
|
||||||
23
|
24
|
|||||
За последние 60 дней ни разу не выходила
Сайт листа:
http://kirov.lug.ru
Открыт:
15-09-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.kirovlug-list@subscribe.ru
добавил немного фотографий в раздел "LUG :: Линуксовки"
http://kirov.lug.ru/lug/lug_meeting.shtml
Очередное сборище linuxового народа состоится на Театральной площади у
остатков сцены в ПЯТНИЦУ (8 апреля) в 18.00. Приглашаются все желающие.
P.S. Кто может опоздать - предупредите заранее - на сколько, чтобы мы
вас подождали.
Монтирование USB-устройства из автозапуска KDE
Появился у меня новый HDD 2.5'', который подсоединяется
к компьютеру через USB. Но вместе с ним и появились проблемы.
Дело в том, что он упорно не желает определяться на этапе
загрузки, но зато когда уже загрузились, то определяется сразу
как только воткнешь его в USB-разъем. Вдобавок к этому, на нем
располагается несколько каталогов, необходимых для работы:
например, на одном из разделов есть каталог, на который,
при примонтированом устройстве, ссылается симлинк
/home/koal/bin, а из этого каталога при старте сеанса
KDE должен запускаться скрипт sim.pl, ответственный
за управление программой SIM. Очевидно, что если я забуду
подключить USB-устройство с этими каталогами или забуду
подмонтировать соответствующие разделы, то KDE заругается...
Несколько дней это меня напрягало и поэтому я решил написать
не сложный скриптик.
Какие обязанности хотел я возложить на данный скрипт?
1. Он должен проверить подключено ли к системе необходимое
устройство. Если не подключено, то как-то сообщить
об этом.
2. Подмонтировать соответствующие разделы.
3. Если предыдущие пункты выполнены, то запустить
на выполнение некоторую программу. Таким образом
осуществляется запуск по условию.
Итак, вот что у меня получилось:
begin rmount.sh #!/bin/sh
# Скрипт позволяет монтировать внешние USB-диски перед их
# использованием.
# Для начала проверяются данные об устройстве, если подключено "нужное"
# устройство, то происходит выборка точек монтирования и производится
# операция монтирования разделов к этим точкам. Параметры монтирования
# в операцию монтирования не подставляются, поэтому должны быть описаны
# в файле /etc/fstab
# Данные об устройстве искать в файле /proc/scsi/scsi
DATAFILE="/proc/scsi/scsi"
# Файл, в котором перечислены точки монтирования
FSTABFILE="/etc/fstab"
# Производитель устройства
VENDOR="TOSHIBA"
# Для более точной идентификации - модель устройства
MODEL="MK4025GAS"
# Тип монтируемого устройства
MTYPE="sda"
# Программа, которую запускать после монтирования
PRUN="/home/koal/bin/sim.pl"
# Отладка скрипта
DEBUG=0
# Проверка есть ли поддержка SCSI устройств в системе
if [ ! -f $DATAFILE ]; then
echo "ERROR: SCSI subsystem not support"
exit 1
fi
FL=0
while [ $FL -eq 0 ]; do
# Выделение строки из списка SCSI-устройств
SCSI_STR=`cat $DATAFILE | grep $VENDOR | grep $MODEL`
if [ -z "$SCSI_STR" ]; then
# Запрос о повторении попытки
/usr/bin/Xdialog --screen-center --no-close \
--title "USB Storage" --buttons-style text \
--yesno "Повторить попытку после подключения устройства?" 0 0
# Если выбран отрицательный ответ
if [ $? -ne 0 ]; then
FL=2
else
sleep 2s
fi
else
FL=1
fi
done
if [ $FL -eq 2 ]; then
echo "ERROR: Device not found"
exit 2
fi
# Определение списка монтируемых устройств
DEVICES=`cat $FSTABFILE | grep -v ^[[:space:]]*# | grep $MTYPE | awk
'{print $2}'`
if [ -z "$DEVICES" ]; then
echo "ERROR: Can't find mount points"
exit 3
fi
# Монтируем найденные устройства
for i in $DEVICES; do
if [ $DEBUG -eq 0 ]; then
mount $i
else
echo "mount $i" >> /home/koal/__log.log
fi
done
# Выполнить заданную команду по заверешнии
if [ -n $PRUN ]; then
if [ -f $PRUN ]; then
if [ $DEBUG -eq 0 ]; then
exec $PRUN
else
echo "exec $PRUN" >> /home/koal/__log.log
fi
fi
fi
end rmount.sh Из текста скрипта видно, что разделы должны быть описаны
в /etc/fstab. Хотя скрипт можно было бы развить таким образом,
чтобы он сам определял разделы и файловые системы
на устройстве и автоматически генерировал параметры
необходимые для монтирования, но это будет домашним задание
для кого-либо другого.
Также для отладки скрипта можно установить переменную DEBUG
в 1, тогда никаких активных действий предприниматься не будет,
а скрипт только предупредит о том, что в данном месте
программы он должен был сделать.
Если теперь положить данный скрипт в /usr/local/bin/,
то остается только удалить ссылку на "/home/koal/bin/sim.pl"
из пункта "Автозапуск", а вместо него добавить ссылку
на "/usr/local/bin/rmount.sh".
Kolotov Alexandr пишет:
>да простит меня модератор :)
>
Видимо простит ;)
да простит меня модератор :)
есть монитор HYUNDAI 5870 - 15'', рабочий, чуть подсажена трубка (для
работы вполне хорошо, но для просмотра фильмов приходится крутить
регуляторы яркости и контрастности в проигрывателе)
хочу поменять его на (2 USB-флэшки по 128) или (1 - 128, а другую - 64)
или (на 1 - 256, но это не очень хорошо)...