如果您运行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吗?
发布于 2018-05-26 19:01:06
在我的系统中,/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发布于 2018-05-17 11:35:20
一个可能的原因可能是你在屏幕上看到的不是awk的结果,而是stderr的结果。以下是您可以做的诊断:
https://stackoverflow.com/questions/50352387
复制相似问题