Existe um comando chamado “on” para executar comandos em computadores remotos? [fechadas]

1

Eu me deparei com um script bash que descobre a memória, o uso da CPU etc. em máquinas remotas. Para fazer isso, usa uma técnica como esta:

i=RemoteServerName

TOTALMEM='on $i cat /proc/meminfo | grep MemTotal | awk -F ' ' '{print $2}' '

Eu pesquisei na internet e parece que todos estão usando o ssh username @ RemoteServerName para conseguir isso. Eu não estou entendendo como isso "on" funciona. O script funciona bem, mas quando executo o comando fora do script, ele diz: -bash: on: comando não encontrado ..

Eu pesquisei em man pages, nada foi encontrado. Além disso, procurei por quaisquer aliases que "on" representem usando o comando "type on". Mas nada é encontrado. Por favor, ajude-me a entender como este "on" funciona para executar comandos em máquinas remotas. Eu não acho que há um comando chamado "on". Por favor ajude.

Ambas as máquinas locais e remotas são Redhat 6.2

    
por Vinod 22.12.2016 / 00:56

1 resposta

3

Eu encontrei. Tudo o que eu fiz inicialmente foi pesquisar em todo o ambiente do meu (root) para um apelido chamado "on". Mas então eu verifiquei como esse script está sendo usado no servidor. Ele é usado para gerar a utilização de recursos por hora de muitos outros servidores remotos. Então deve ser uma parte do crontab. Sim, aí estamos nós! Este script é parte de um crontab específico do usuário de outro usuário (não raiz).

Havia essas linhas no script:

PATH=$PATH:$HOME/bin
export PATH

Esse ~ / bin do usuário possui o executável "on" que possui todo o código necessário para converter on $i para ssh servername .

Se você está se perguntando por que esta etapa extra em vez de usar diretamente ssh servername , aqui está a explicação. O formato de código que mostrei acima era apenas um formato e no script atual ele é usado para gerar relatórios de muitos servidores (que são agrupados em vários grupos), como abaixo:

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 etc. são listas contendo nomes de host de servidores semelhantes.

Servidores pertencentes a um grupo possuem credenciais comuns para o login. O arquivo "on" contém todo o código necessário para formar o comando ssh username@servername com base em seu grupo, usando a instrução case.

    
por 22.12.2016 / 22:52