Почему ntpq показывает плохую авторизацию?

В скорлупе,возвращаемое значение функции похоже на статус выхода команды :. Вы можете вернуть только небольшое целочисленное значение, указывающее на успех (0 )или код ошибки (> 0 ).

Этот статус никак не связан с выводом команды. Чтобы запустить команду и сохранить ее вывод в переменной, используйте подстановку команд . Чтобы запустить команду в функции и получить ее вывод как вывод функции, просто запустите команду.

function which_terminal {
    ps -p$PPID | awk "'NR==2'" | cut -d "' '" -f 11
}

Обратите внимание, что синтаксический анализ вывода psненадежен и излишен. (Кроме того, вы ошиблись :вы анализируете 'NR==2'в awkи ' 'в cut, оба из которых являются недопустимыми аргументами; вам нужны либо одинарные, либо двойные кавычки вокруг каждого из них, а не оба. )Команда psимеет опции для печати любого поля, которое вы хотите, например. commдля имени исполняемого файла (усеченного до 16 символов под Linux )или argsдля полной командной строки с аргументами (и иногда полного пути к команде, в зависимости от того, как она была вызвана ).

function which_terminal {
    ps -p$PPID -o comm=
}

Или, чтобы сохранить вывод в переменную:

parent_process_command=$(ps -p$PPID -o comm=)

Причина ошибки, которую вы получаете, заключается в том, что zsh пытается проанализировать следующее returnв качестве аргумента команды (здесь это аргумент ключевого слова return, но они анализируются в так же ). Он видит открытую скобку и решает, что это начало выражения с подстановочным знаком. Это подстановочное выражение будет соответствовать файлу с именем ps -p16632, awk 'NR==2'илиcut -d -f 11(с начальными/конечными пробелами, которые здесь не отображаются ), но поскольку у вас (, что неудивительно ), нет файлов с любым из эти имена, zsh жалуется, что не нашел совпадения. return ?вернет 3, если у вас есть файл с именем 3в текущем каталоге и нет другого файла с именем из одного символа -.

0
11.09.2019, 15:46
1 ответ

Это известная ошибка в ntpsec. Ntpq говорит «плохой» в столбце аутентификации для рабочих серверов, потому что ntpd говорит, что сервер плохой. Об ошибке было сообщено при разработке ntpsec в https://gitlab.com/NTPsec/ntpsec/issues/513, а исправление было сделано в ntpsec 1.1.3.

Bad на самом деле означает, что аутентификация не удалась, но информация неверна в ntpsec старше 1.1.3.

0
28.01.2020, 03:17

Теги

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