Я нашла. Все, что я делал изначально, это искал повсюду в моей (корневой) среде псевдоним "on". Но потом я проверил, как этот скрипт используется на сервере. Он используется для определения почасового использования ресурсов многих других удаленных серверов. Значит, он должен быть частью crontab. Да, вот оно что! Этот сценарий является частью пользовательского crontab другого пользователя (не root).
В сценарии были следующие строки:
PATH=$PATH:$HOME/bin
export PATH
У этого пользователя ~ / bin есть исполняемый файл «on», в котором есть весь необходимый код для преобразования в $ i
в ssh servername
].
Если вам интересно, почему этот дополнительный шаг вместо прямого использования ssh servername
, вот объяснение. Формат кода, который я показал выше, был просто форматом, и в фактическом скрипте он используется для создания отчетов о многих серверах (которые сгруппированы в несколько групп), как показано ниже:
for i in $GROUP1 $GROUP2 $GROUP3
do
TOTALMEM=`on $i cat /proc/meminfo | grep MemTotal | awk -F ' ' '{print $2}' `
#other report generation and formatting code here
done
GROUP1, GROUP2 и т. Д. - это списки, содержащие одинаковые имена хостов. серверы.
Серверы, принадлежащие одной группе, имеют общие учетные данные для входа в систему. Файл «on» содержит весь необходимый код для формирования команды ssh username @ servername
на основе своей группы с использованием оператора case.