Извлечение информации из вывода hdparm - PullRequest
0 голосов
/ 15 мая 2018

Если вы запустите hdparm -I /dev/X, где X - ваше SSD-устройство, оно напечатает информацию (операция только для чтения), похожую на эту

...
Security: 
    Master password revision code = 36401
        supported
    not enabled
        locked
    not frozen
        expired: security count
        supported: enhanced erase
...

Так что легко извлечь not перед frozen с

for d in $(ls /sys/block); do
    is_frozen=$(hdparm -I /dev/$d | awk '/frozen/ { print $1 }')
    echo $is_frozen
done

Однако всегда возвращается frozen, как будто not не существует.

Вопрос

Может кто-нибудь объяснить, как извлечь not из строки frozen?

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

В моей системе / dev / sda в настоящий момент заморожена, а / dev / sdb не заморожена, как показано здесь:

# hdparm -I /dev/sda | grep frozen
        frozen
# hdparm -I /dev/sdb | grep frozen
    not    frozen

Просто добавьте $d к вашей команде echo, чтобы увидеть устройство и его правильное соответствующее значение (я позволил себе заменить длинную команду awk гораздо более короткой grep):

# for d in $(ls /sys/block) ; do is_frozen=$(hdparm -I /dev/$d | grep frozen) ; echo $d $is_frozen ; done
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
loop0
...
sda frozen
sdb not frozen

Если вы хотите очистить вывод, замените ls на find:

# for d in $(find /sys/block -name 'sd*' -exec basename {} \;) ; do is_frozen=$(hdparm -I /dev/$d | grep frozen) ; echo $d $is_frozen ; done
sda frozen
sdb not frozen

или ls запрос /dev/sd? вместо:

# for d in $(ls -1 /dev/sd?) ; do is_frozen=$(hdparm -I $d | grep frozen) ; echo $d $is_frozen ; done
/dev/sda frozen
/dev/sdb not frozen
0 голосов
/ 17 мая 2018

Одной из возможных причин может быть то, что вы видите на экране не результат awk, а stderr.Вот что вы можете сделать для его диагностики:

  1. Пропустите пока цикл for и протестируйте с одним устройством, скажем, sda.
  2. Перенаправьте вывод в файл, например, $ sudo hdparm-I / dev / sda> / tmp / tempfile
  3. Посмотрите, видите ли вы по-прежнему строки с «замороженным» экраном.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...