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 cmd1
não pode ser encontrado no arquivo $PATH
. Portanto, você deve certificar-se de que o caminho cmd1
esteja 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 cmd1
em seu shell interativo (aquele via PuTTY).
Você pode definir o PATH em ~/.bashrc
ou ~/.profile
, que é .bashrc ou .profile em seu diretório inicial.
Você pode verificar o PATH echo $PATH
em 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.