Bash Script to Eject USB drive yang tidak dienkripsi

0

Saya harus mengeluarkan paksa drive USB apa pun yang tidak dienkripsi. Saya sudah memiliki skrip yang mengeluarkan drive USB apa pun, tetapi saya harus memodifikasinya untuk memeriksa status enkripsi disk sebelum mengeluarkan.

Ini adalah skrip yang saya miliki yang akan secara otomatis mengeluarkan drive USB apa pun:

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

Sejauh ini, perintah berikut akan menunjukkan status enkripsi:

diskutil apfs list

Tetapi saya mengalami masalah dalam menguraikan output untuk menemukan disk yang tidak terenkripsi untuk dikeluarkan. Tolong!

Berbunyi nyaring
sumber

Jawaban:

0

Berikut ini skrip yang berfungsi:

#!/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
Berbunyi nyaring
sumber