anonymous@RULINUX.NET~# Last login: 2018-09-22 11:06:37
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

flash_mounter.sh

Что-то мне поднадоело ручками каждый раз вбивать mount <что> <куда> и родился этот сценарий:

bash

#!/bin/sh

if [ $# -eq 1 ]; then
        DEV="$1"
else
        #DEV=/dev/sda1
        echo "Usage: $0 <device>"
        exit 1
fi

MOUNTED=0
WAIT_STRING="/-\|"
WAIT_STRING2=".oO*"

function wait_removing_device_file ()
{
        # ожидаем удаление файла устройства
        local l_m=0
        echo -n " "
        while [ -r ${DEV} -a ${MOUNTED} -ne 0 ];
        do
                l_m=$(((${l_m}+1)%4))
                echo -ne "\b${WAIT_STRING:${l_m}:1}"
                sleep 1;
        done
        echo -ne "\b"
        MOUNTED=0
}

echo -n "Wait for ${DEV}... "
while true
do
        if [ -r "${DEV}" -a ${MOUNTED} -eq 0 ]; then
                echo
                echo -n "Mount ${DEV}... "
                mount "${DEV}"
                ANS=$?
                if [ ${ANS} -ne 0 ]; then
                        echo "FAIL"
                else
                        MOUNTED=1
                        echo "done"
                        echo -n "Press ENTER to unmount ${DEV} "
                        read
                        ANS=1
                        while [ ${ANS} -ne 0 ];
                        do
                                echo -n "Try to unmount ${DEV}... "
                                umount "${DEV}"
                                ANS=$?
                                sleep 3
                        done
                        echo "done"
                        echo -n "Wait for removing ${DEV}... "
                        wait_removing_device_file
                        echo "done"
                        echo -n "Wait for ${DEV}... "
                fi
        fi
        sleep 1
done
 


Используйте на свой страх и риск.

anonymous(*) (2018-07-12 17:41:29)

[Ответить на это сообщение]
[#] [Добавить метку] [Редактировать] Ответ на: flash_mounter.sh от anonymous 2018-07-12 17:41:29
avatar
Скрыть

Re:flash_mounter.sh

У меня автомаунт короче:

bash

$ cat /etc/auto.myUSB
Bank1 -fstype=ext4 :/dev/disk/by-uuid/74e1ffbc-b3da-sc9e-8ea3-aa67dd3fe3d0
 

anonymous(*)(2018-07-12 22:31:15)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:flash_mounter.sh от anonymous 2018-07-12 22:31:15
avatar
Скрыть

Re:flash_mounter.sh

А умоунт как, ручками?

anonymous(*)(2018-07-13 12:45:40)

[#] [Добавить метку] [Редактировать] Ответ на: Re:flash_mounter.sh от anonymous 2018-07-13 12:45:40
avatar
Скрыть

Re:flash_mounter.sh

Автоматически при неиспользовании отмонтируется через 5 минут (конфигурабельно).

Так сделано, естественно, не потому, что лень написать mount /dev/sdc1 /my/mount/dir, а для постоянно подключенного к файловому серверу USB-диска. Через fstab мне чота стрёмно - ну смонтируется он при загрузке, а ну как потом этому USB в голову придёт кратковременно отвалиться? А так при обращении к заданной точке монтирования будет попытка подмонтировать устройство, плюс при размонтировании кеш той фс должен освобождать место для более полезных байтов (внешний диск редко используется, большу часть времени он просто не нужен).
Была ещё надежда что диск при этом будет в какое-нибудь подобие энергосохранения впадать, но судя по ваттметру, общее энергопотребление системы не меняется. Возможно, что при размонтировании можно как-то обесточивать USB-порт, но для этого нужно пару вещей, которых я не знаю как:
1. Подвесить обработчик на событие размонтирования диска автомаунтом - так и не нашел как это сделать.
2. Как-то выключать питание на USB-порту или, ещё лучше, саспендить USB-устройство - вроде бы хост вроде может приказывать девайсам переходить в микропотребляющий режим, в котором они ничего не делают и только жрут считанные миллиамперы в ожидании дальнейших инструкций от хоста.

anonymous(*)(2018-07-14 02:56:23)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
[#] [Добавить метку] [Редактировать] Ответ на: Re:flash_mounter.sh от anonymous 2018-07-14 02:56:23
avatar
Скрыть

Re:flash_mounter.sh

> Автоматически при неиспользовании отмонтируется через 5 минут (конфигурабельно).
А если уж совсем приспичело? Ну, скинул файлы на флешку и бежать?

> Как-то выключать питание на USB-порту или, ещё лучше, саспендить USB-устройство
На сколько я помню, powertop при запуске давал подсказки что и где подкрутить, дабы потреблять как можно меньше, в том числе и про CONFIG_USB_SUSPEND=y

https://www.calculate-linux.org/blogs/ru/205/show

anonymous(*)(2018-07-16 13:01:44)
Отредактировано anonymous по причине "не указана"
[#] [Добавить метку] [Редактировать] Ответ на: Re:flash_mounter.sh от anonymous 2018-07-16 13:01:44
avatar
Скрыть

Re:flash_mounter.sh

> А если уж совсем приспичело? Ну, скинул файлы на флешку и бежать?

sync and run! Главное не думать что будет с самбой и её клиентами, если они там что с диском делали в этот момент.

> CONFIG_USB_SUSPEND

Ну вот щас бу я ядро переконпелять. В дефолтном конфиге даже опции такой не нашел.

anonymous(*)(2018-07-16 17:01:33)

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!