Отправляет email-рассылки с помощью сервиса Sendsay

KirovLUG: пользователи Linux в Вятке

За 2005-04-06

сайт

добавил немного фотографий в раздел "LUG :: Линуксовки"

http://kirov.lug.ru/lug/lug_meeting.shtml

   2005-04-06 15:43:31 (#346195)

linuxовка

Очередное сборище linuxового народа состоится на Театральной площади у
остатков сцены в ПЯТНИЦУ (8 апреля) в 18.00. Приглашаются все желающие.

P.S. Кто может опоздать - предупредите заранее - на сколько, чтобы мы
вас подождали.

   2005-04-06 15:36:01 (#346181)

Монтирование USB-устройства из автозапуска KDE

Монтирование 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".

   2005-04-06 15:33:15 (#346180)

Re: меняю монитор на...

Kolotov Alexandr пишет:
>да простит меня модератор :)
>
Видимо простит ;)

   2005-04-06 09:41:16 (#345963)

меняю монитор на...

да простит меня модератор :)

есть монитор HYUNDAI 5870 - 15'', рабочий, чуть подсажена трубка (для
работы вполне хорошо, но для просмотра фильмов приходится крутить
регуляторы яркости и контрастности в проигрывателе)

хочу поменять его на (2 USB-флэшки по 128) или (1 - 128, а другую - 64)
или (на 1 - 256, но это не очень хорошо)...

   2005-04-06 09:26:34 (#345950)