BESO en awk:
awk '{for (i=2;i<=9;i++) if ($i != 0) next; n++} END {print n}' file
Perl:
perl -anE '$n += 8 == grep { $_ == 0 } @F[1..8] }{ say $n' file
o (como sugiere Glenn Jackman )usando el módulo List ::Util
perl -MList::Util=all -anE '$n++ if all {$_ == 0} @F[1..8]} {say $n' file
Причин пробуждения накопителей может быть бесчисленное множество.
Например, у меня была эта проблема с моими новыми дисками WD80EZAZ. Оказывается, простой smartctl -a
пробуждает их (просто запросить данные SMART, даже не запуская никаких тестов ). Этого не было с моими старыми дисками WD20EARS, вы могли запросить их, даже если они не крутились нормально. Поэтому мне пришлось добавить -n standby
к моему smartd.conf
, чтобы игнорировать диски в режиме ожидания.
Другими популярными причинами являются файловые системы, например ext4
с отложенной инициализацией может периодически обращаться к диску. Вы можете установить /proc/sys/vm/block_dump
или использовать другие инструменты, чтобы выяснить это, или использовать mount -o loop,ro
для монтирования только для чтения -, чтобы исключить периодический (доступ для записи )со стороны самой файловой системы.
Если у вас есть недопустимая запись /etc/fstab
, указывающая несуществующий UUID, это также может привести к сканированию всех дисков на предмет отсутствующего UUID, что приведет к пробуждению всего процесса. Вот почему вы иногда видите, что люди используют /dev/disk/by-uuid/the-thing
вместо UUID=the-thing
, так как это предотвращает дополнительное сканирование :символическая ссылка by -uuid либо существует, либо нет, в отличие от findfs
она не проходит все диски каждый раз время.
Также проверьте dmesg
на наличие регулярных сбросов шины или других подобных проблем. Шаткий кабель также может вызвать странные побочные эффекты.
К сожалению, у этой проблемы нет простого решения, и может быть трудно определить точную причину.