hay 2 sistemas,
sistema cliente, en el que estoy pasando comandos al servidor haciendo openssh al servidor y mi script es así
#!/usr/bin/perl use lib "/home/geek/app/usr/lib/perl5/site_perl/5.8.8"; use lib "/home/geek/app/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi"; use lib "/usr/lib/perl5/5.8.8"; use Net::OpenSSH; my $host = '******010'; my $user = '*****'; my $pass = '*****'; my $ssh = Net::OpenSSH->new("$user:$pass\@$host"); $ssh->error and die "Couldn't establish SSH connection: ". $ssh->error; my $out = $ssh->capture("/p/inway/bin/inway71 lib123 p123.0_CC default "); #my $out = $ssh->capture("cd units; ls"); #$out = $ssh->capture("ls units/"); print "output is $out";y en el servidor /p/inway/bin/inway71 hay scripts:
#!/bin/sh . $MODULESHOME/init/sh module load lsf exec bsub -Is -q interactive -J INWAY71_LSF -R 'type==X64LIN && osrel==50 && clearcase' /nfs/site/proj/inway/bin/inway71 ${1+"$@"}así que cuando inicie sesión en mi servidor y ejecute este script en mi terminal, seré dirigido a alguna ruta (no tengo ni idea de qué es, pero supongo que es un servidor más en el que puedo iniciar sesión usando este script bash) y puedo hacer el resto de la actividad como cd,ls,cat, etc etc)
pero cuando ejecuto esto desde mi sistema cliente, pasa el control a la terminal y espera mi entrada, y en mi terminal aparece un error que dice:
stty:standard input:Invalid argumentEn mi terminal puedo hacer ls o cualquier cosa, pero no puedo hacerlo desde el script perl y capturar el resultado. ¿Cómo puedo resolver esto y obtener lo que quiero?
Ese comando remoto espera ejecutarse en modo interactivo. Esto no funciona con el modo de comando SSH. ¡Vea estas preguntas frecuentes de Net::OpenSSH!
Puede: