Карта сайтаПослать e-mailНа стартовую страницу
Создание веб сайтов — Создание сайтов в Казани. Экспресс Интернет - веб-студия — Казань, Татарстан

Создание сайтов в Казани. Экспресс Интернет - веб-студия  
         
Уполномоченный партнер Microsoft
Новые возможности ...

Система управления сайтами Express-Web

Полное управление структурой и содержимым сайта

code

#!/bin/bash
# Задаем стартовые переменные
lockfile=/tmp/automount.lock # lock файл необходим когда одновременно монтируется несколько разделов одного устройства
mountpoint="/dev/"$2 # превращаем точку монтирования в правильный вид
# Выбираем действие
# msd - монтирование /dev/sdX устройств - чаще всего USB накопителей
# msr - монтирование cdrom которые обычно обозначаются как /dev/srX\
# u - отмонтирование устройств
case "$1" in
msd)
# Проверяем наличие lock файла и если он есть спим 2 секунды
while [ -f $lockfile ]
do
sleep 2
done
# Создаем lock файл и получаем метку раздела в качестве точки монтирования
touch $lockfile
DLABEL=`/sbin/udevadm info --query=all --name=$mountpoint | grep disk/by-label | sed s/"S: disk\/by-label\/"//g`
# Проверяем что метка у раздела есть, а если нет, то в качестве метки берем имя производителя
if [ -z "$DLABEL" ]; then
DLABEL=`/sbin/udevadm info --query=all --name=$mountpoint | grep ID_VENDOR | sed s/"E: ID_VENDOR="//g`
fi
# Проверяем нет ли уже такой точки монтирования, а если есть то пытаемся добавить к имени -1, -2 итд.
if [ `/bin/ls -1 --hide=cdrom --color=none /media | sed s/"\/"//g | grep -cx $DLABEL` -gt 0 ]; then
k=1
DLABELN=$DLABEL'-'$k
while [ `/bin/ls -1 --hide=cdrom --color=none /media | sed s/"\/"//g | grep -cx $DLABELN` -gt 0 ]
do
k=`expr $k + 1`
DLABELN=$DLABEL'-'$k
done
DLABEL=$DLABELN
fi
# В качестве варианта к метке просто добавляем имя раздела (то есть -sdX)
# if [ -d /media/$DLABEL ]; then
# DLABEL=$DLABEL"-"$2
# fi
# Монтируем и удаляем lock файл
pmount -A $mountpoint $DLABEL 2>/dev/null
rm $lockfile
;;
msr)
# предполагаем что в системе только один оптический привод, находим метку диска и монтируем
DLABEL=`volname $mountpoint`
pmount $mountpoint $DLABEL
;;
u)
# Проверяем количество смонтированых устройств
# /media/cdrom это точка монтирования прописанная в /etc/fstab в моем дистрибутиве
set `/bin/ls -1 --hide=cdrom --color=none /media | wc -l`
case $1 inv
0)
echo "Нечего отмонтировать!"
;;
1)
DLABEL=`/bin/ls -1 --hide=cdrom --color=none /media`
cd /media
pumount $DLABEL 2>/dev/null
# Проверяем код возврата pmount. Если больше 0 то операция не удалась
if [ $? -gt 0 ]; then
echo "Операция отмонтироования "$DLABEL" не удалась"
fi
;;
*)
echo "Много монтированных устройств. Выбирайте одно."
# Получаем список монтированных устройств и печатаем его с порядковым номером каждой точки монтирования
set `/bin/ls -1 --hide=cdrom --color=none /media`
k=1
for i in "$@"
do
echo $k " "$i
k=`expr $k + 1`
done
# Читаем номер
echo -n "Введите номер отмонтируемого устройства:"
read x
# Снова получаем список и бежим по нему. Если k=x то делаем как в предыдущем случае (то есть 1)
set `/bin/ls -1 --hide=cdrom --color=none /media`
k=1
for i in "$@"
do
if [ $x = $k ]; then
cd /media
pumount $i 2>/dev/null
if [ $? -ne 0 ]; then
echo "Операция отмонтироования "$i" не удалась"
fi
exit 0
fi
k=`expr $k + 1`
done
;;
esac
;;
esac

 

Карта сайта | Поиск | Новости сайтостроения

Система управления сайтом «Express-Web»
e-mail: safin@e-inet.ru

© «Экспресс-Интернет» — создание сайтов в Казани
Разработка и создание систем управления для веб-сайтов.