La sesión manual de Putty y la sesión de Plink se comportan de manera diferente

La sesión manual de Putty y la sesión de Plink se comportan de manera diferente

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 cmd1no se puede encontrar en $PATH. Por lo tanto, debe asegurarse de que la ruta cmd1esté 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 cmd1en su shell interactivo (el de PuTTY).

Puede configurar la RUTA en ~/.bashrco ~/.profile, es decir, .bashrc o .profile en su directorio de inicio.

Puede verificar la RUTA con echo $PATHen 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.

información relacionada