Bash Script para Ejectar unidade USB não encriptada

0

Eu preciso forçar a ejeção de qualquer unidade USB que não esteja criptografada. Eu já tenho um script que ejeta qualquer unidade USB, mas preciso modificá-lo para verificar o status de criptografia do disco antes de ejetar.

Aqui está o script que eu vou ejetar automaticamente qualquer drive USB:

for disk in $(diskutil list | awk '/disk[1-9]s/{ print $NF }' | grep -v /dev); do
  if [[ $(diskutil info $disk | awk '/Protocol/{ print $2 }') == "USB" ]]; then
    echo "Device $disk is a USB removable disk"
    diskName=$(diskutil info $disk | awk -F"/" '/Mount Point/{ print $NF }')'
    diskutil unmountDisk $diskName
  fi
done

Até agora, o comando a seguir mostrará o status da criptografia:

diskutil apfs list

Mas estou tendo problemas para analisar a saída para encontrar o disco não criptografado a ser ejetado. Socorro!

    
por Crake 18.06.2018 / 22:42

1 resposta

0

Aqui está o script que funciona:

#!/bin/bash
osascript -e 'display notification "Checking USB" with title "USB Notification"'
for disk in $(diskutil list | awk '/disk[1-9]s/{ print $NF }' | grep -v /dev); do
    if [[ $(diskutil info $disk | awk '/Protocol/{ print $2 }') == "USB" ]]; then
        echo "Device $disk is a USB removable disk"
        diskName=$(diskutil info $disk | awk -F"/" '/Mount Point/{ print $NF }')
        if [[ $(diskutil apfs list ${disk:0:5} | awk '/FileVault/{ print $2 }') == "No" ]]; then
            osascript -e 'display notification "Detected a USB removable disk that is not encrypted, ejecting" with title "USB Notification"'
            echo "Unmounting ${disk:0:5}"
            diskutil unmountDisk ${disk:0:5}
        fi
    fi
done
    
por 20.06.2018 / 17:26

Tags