Umount todos os discos usb conectados com um único comando

7

Existe uma maneira (segura) de desmontar todas as partições em todos os dispositivos usb conectados (usb-hdds, usb-sticks) com um único comando de linha de comando, incluindo várias partições luks criptografadas?

Apenas as partições nos dispositivos usb devem ser posicionadas, nada mais!

    
por student 20.07.2012 / 14:56

1 resposta

3

Tentei o meu melhor para ficar posix com isso, note que ele falhará se você não tiver um pacote "udevadm" adequado disponível para exibir informações do udev.

#!/bin/bash

command_exists () {
    type "$1" &> /dev/null
}

CMD=""

if command_exists udevadm; then
        CMD="$(which udevadm) info -q all -n"
fi

if command_exists udevinfo; then
        CMD="$(which udevinfo) -q all -n"
fi

echo "The udevinfo command for this system is $CMD"


for disk in /dev/sd*
do
        DISK=$($CMD $disk | grep ID_BUS)
        if [[ "$DISK" == *usb ]]; then
                echo "$disk is USB, now unmounting.."
                umount $disk
        fi
done
    
por 20.07.2012 / 19:24