Интерпретация ошибок диска, выводимых ras -mc -ctl --сводка

Вы упустили самый важный момент, перенаправление оболочки применяется по порядку слева направо.

В:

{ 2>&3 "$@"& } 3>&2 2>/dev/null

Вся групповая команда запускается с:

  • Дескриптор файла 3 => стандартная ошибка, которая в настоящее время является терминалом .
  • Дескриптор файла 2 (Стандартная ошибка )=> /dev/null

Таким образом, при выполнении команды внутри группировки:

  • Стандартная ошибка => дескриптор файла 3, который указывает на терминал.

Таким образом, если "$@"&выводит что-либо со стандартной ошибкой, вывод выводится на терминал.


Для ваших конкретных случаев:

{ grep warning system.log& } 2>/dev/null

{ grep warning system.log& }работает со стандартной ошибкой, указывает на /dev/null. grepне отменяет никакого перенаправления, поэтому его стандартная ошибка аналогична {...}и перенаправляется на /dev/null, вы не получаете вывода на терминал.

В:

{ 2>&3 grep warning system.log& } 3>&2 2>/dev/null
Стандартная ошибка

grepперенаправляется на дескриптор файла 3, который указывает на терминал, как описано выше, поэтому вы получаете вывод на терминал.

1
01.08.2020, 22:31
1 ответ

lsblkдаст вам номера MAJ :MIN

Чтобы вычислить эквивалент для ras-mc-ctl, выполните:

d = (MAJ * 256) + MIN

Чтобы перейти от ras-mc-ctlк lsblk, выполните:

MAJ=int(d/256)
MIN=d % 256

Для вашего случая:

MAJ=(2064/256)=8
MIN=(2064%256)=16
1
18.03.2021, 23:15

Теги

Похожие вопросы