HOLA, me estoy conectando a un servidor Linux remoto usando PuTTY desde una PC con Win y ejecutando ciertos comandos allí. Deseo automatizar las tareas usando plink de la siguiente manera:
plink serveradress -l userid -pwd pass -batch "ls;cmd1"
Si realizo los comandos "ls;cmd1;cmd2" manualmente a través de PuTTY/Plink, funciona bien. Sin embargo, si hago lo mismo a través de cmd.ext y el comando plink anterior, aparece "bash cmd1 no encontrado". Sin embargo, el comando ls funciona bien.
¿Por qué pasó esto? PD: cmd1 no es un comando incorporado de Linux. Supongo que está creado específicamente para el servidor.
¿Cómo hago que esto funcione?
Respuesta1
Cuando bash se queja de "comando no encontrado", significa que el comando cmd1
no se puede encontrar en $PATH
. Por lo tanto, debe asegurarse de que la ruta cmd1
esté siempre en $PATH
, o debe especificar el nombre de ruta completo para cmd1
:
plink serveradress -l userid -pwd pass -batch "ls;/where/you/can/find/cmd1"
Puede encontrar ese nombre de ruta completo which cmd1
en su shell interactivo (el de PuTTY).
Puede configurar la RUTA en ~/.bashrc
o ~/.profile
, es decir, .bashrc o .profile en su directorio de inicio.
Puede verificar la RUTA con echo $PATH
en su sesión de PuTTY o con plink serveradress -l userid -pwd pass -batch 'echo $PATH'
(tenga en cuenta las comillas simples). Si haces ambas cosas, deberías ver la diferencia.