Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 6
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2014 » Июль » 22 » Автомонтирование флешек в Linux
15:20
Автомонтирование флешек в Linux
Случилось так, что я отказался от полноценных рабочих столов в пользу оконного менеджера fluxbox. Всё меня устраивает, кроме одного - автоматического монтирования флешек в оконном менеджере, естественно, не предусмотрено. Один мой приятель, на своём сайте разместил статью об автомонтировании флешек через правила демона udev. В этой заметке я напишу о том, как я немного расширил правила, приведённые в указной статье.Всем Вам известно, что накопители в Linux монтируются в существующий каталог. И каждый, кто монтировал флешки вручную, знает, что перед монтированием нужно создать каталог, затем смонтировать, а после размонтирования - удалить.  Альтернативой может служить заранее созданная куча каталогов, но это засоряет файловую систему и, к тому же, не красиво, с эстетической точки зрения.Для автоматизации указанных действий, мною был написан следующий скрипт на bash.#!/bin/bash# $1 - action: mount or umount# $2 - device name# $3 - device $SCRIPT_NAME $MOUNT_ACTION <device name> <device file>" echo or echo "$SCRIPT_NAME $UMOUNT_ACTION <device name>"}# $1 - error messagefunction errorMessage() { echo -e '\E[31m'\<$SCRIPT_NAME\> Error: $1 tput sgr0}# $1 - warning messagefunction warningMessage() { echo -e '\E[33m'\<$SCRIPT_NAME\> Warning: $1 tput sgr0}# $1 - messagefunction logMessage() { echo -e '\E[32m'\<$SCRIPT_NAME\>: $1 tput sgr0}# $1 - error messagefunction errorExit() { errorMessage "$1" echo printUsage echo exit 1}# $1 - error messagefunction crashExit() { errorMessage "$1" echo exit 2}# $1 - directory path# returns 1 - true, 0 - falsefunction isDirectoryEmpty() { $NOT_EMPTY" == "X" ]; then return 1 else return 0 fi}# $1 - directory namefunction deleteDirectory() { rmdir $1 if [ ! 0 couldn't delete $1" return 1 fi return 0}function mountDevice() { if [ -d $MOUNT_DIR$DEVICE_NAME ]; then warningMessage "$MOUNT_DIR$DEVICE_NAME already exist" isDirectoryEmpty $MOUNT_DIR$DEVICE_NAME if [ $? $MOUNT_DIR$DEVICE_NAME is not empty" fi else mkdir $MOUNT_DIR$DEVICE_NAME if [ ! 0 couldn't create $MOUNT_DIR$DEVICE_NAME" fi fi $MOUNT_CMD $DEVICE_FILE $MOUNT_DIR$DEVICE_NAME $MOUNT_OPTS if [ ! 0 couldn't mount device" else logMessage "mount success" fi}function umountDevice() { $UMOUNT_CMD $MOUNT_DIR$DEVICE_NAME if [ $? unmount success" deleteDirectory $MOUNT_DIR$DEVICE_NAME else crashExit "unmount failure" fi}case $ACTION in $MOUNT_ACTION) mountDevice ;; $UMOUNT_ACTION) umountDevice ;; *) errorExit "unknown parametr "$ACTION ;;esacЭтот скрипт создаёт в каталоге /mnt каталог с переданным именем и монтирует в него указанное устройство. Если каталог существует, скрипт выдаст предупреждение, а если существующий каталог не пуст - ошибку.Этот скрипт я и скормил udev`у, как сказано в , , , , , , Теперь при вставке флешки, она у меня автоматически монтируется, а при вытаскивании - размонтируется. Кроме того, скрипт позволяет проводить эти операции вручную, что необходимо, если Вы не уверены в безопасности извлечения флешки в данный момент.
Просмотров: 250 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Форма входа
Календарь
«  Июль 2014  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей