A sessão manual do Putty e a sessão do Plink se comportam de maneira diferente

A sessão manual do Putty e a sessão do Plink se comportam de maneira diferente

Olá, estou me conectando a um servidor Linux remoto usando o PuTTY de um PC Win e executando determinados comandos lá. Desejo automatizar as tarefas usando o 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, tudo funcionará bem. No entanto, se eu fizer o mesmo cmd.ext e o comando plink acima, recebo "bash cmd1 não encontrado". No entanto, o comando ls funciona bem.

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

Como faço para que isso funcione?

Responder1

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

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

Você pode encontrar esse nome de caminho completo which cmd1em seu shell interativo (aquele via PuTTY).

Você pode definir o PATH em ~/.bashrcou ~/.profile, que é .bashrc ou .profile em seu diretório inicial.

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

informação relacionada