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!

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.