понедельник, 24 апреля 2017 г.

CD/DVD eject

В linux есть две утилиты eject для открытия/открытия лотка CD/DVD и udevil - для монтирования/размонтирования подключаемых дисков. Решил две эти утилиты объеденить в одну:

#!/bin/bash

insertdisk=`udisksctl info -b  /dev/sr0 | grep 'Size' | gawk '{ print $2 }'`
echo $insertdisk
echo $1


if [[ $insertdisk -ne 0 ]]
    then
        if [ -z "$1" ] ;
            then
                mountingdisk=`mount | grep sr0`
                echo "mountingdisk="$mountingdisk
                if [ -z "$mountingdisk" ] ; then udevil mount /dev/sr0 ; else udevil umount /dev/sr0 ; /usr/sbin/sdparm -C unlock /dev/sr0 ; eject ; exit 0 ; fi ;
            else
                case    $1    in
                    j|J|о|О)    udevil umount /dev/sr0 ; echo "Извлекаем..." ; /usr/sbin/sdparm -C unlock /dev/sr0 ; eject ; exit 0 ;;
                    *)        udevil umount /dev/sr0 ; echo "Размонтируем" ; /usr/sbin/sdparm -C unlock /dev/sr0 ; exit 0  ;;
                esac
        fi
    else
        eject -T
fi
Скрипт сам проверяет пустой-ли привод: если да - открывает, если нет, и не примонтирован - монтирует, иначе - размонтирует и открывает. Скрипт можно разместить в /usr/local/bin/j и разрешить запуск для пользователя

chown root:storage /usr/local/bin/j && chmod a+x /usr/local/bin
Требуются предустановленные udiscs2, udevil

UPD: оператор sdparm -C unlock /dev/sr0 введён для предотвращения ошибки "eject: unable to eject, last error: Inappropriate ioctl for device" на некоторых ОС, вроде Slackware

Комментарии: 0:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница