Sessão manual Putty e sessão Plink se comportam de maneira diferente

0

Eu estou me conectando a um servidor Linux remoto usando putty de um PC vencedor e executando certos comandos lá. Desejo automatizar as tarefas usando plink da seguinte forma:

plink serveradress -l userid -pwd pass -batch "ls;cmd1"

Se eu executar os comandos "ls; cmd1; cmd2" manualmente através do putty / plink, ele funcionará bem. No entanto, se eu fizer o mesmo comando cmd.ext e acima do plink, recebo "bash cmd1 not found". No entanto, o comando ls funciona bem.

Por que isso acontece? PS: cmd1 não é um comando inbuilt do linux. É criado especificamente para o servidor, suponho.

Como faço isso funcionar?

    
por Abhi 02.02.2018 / 19:36

1 resposta

0

Quando o bash reclama sobre 'comando não encontrado', significa que o comando cmd1 não pode ser encontrado em $PATH . Portanto, você deve certificar-se de que o caminho para cmd1 esteja sempre em $PATH ou você deve especificar o nome completo do caminho para cmd1 :

plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"

Você pode encontrar esse nome de caminho completo com which cmd1 no seu shell interativo (aquele via massa).

Você pode definir o PATH em ~/.bashrc ou ~/.profile , ou seja, o .bashrc ou .profile em seu diretório pessoal.

Você pode verificar o PATH com echo $PATH em sua sessão de putty ou com plink serveradress -l userid -pwd pass -batch 'echo $PATH' (observe as aspas simples). Se você fizer as duas coisas, verá uma diferença.

    
por 02.02.2018 / 23:45