Мне нужно принудительно извлечь любой USB-накопитель, который не зашифрован. У меня уже есть сценарий, который извлекает любой USB-накопитель, но мне нужно изменить его, чтобы проверить состояние шифрования диска перед извлечением.

Вот мой скрипт, который автоматически извлечет любой 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

Пока что следующая команда покажет статус шифрования:

diskutil apfs list

Но у меня проблемы с анализом выходных данных, чтобы найти незашифрованный диск для извлечения. Помогите!

1 ответ1

0

Вот скрипт, который работает:

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .