使用 perl openssh 传递命令服务器
pass commands server using perl openssh
有2个系统,
客户端系统,
其中我通过对服务器执行 openssh 将命令传递给服务器,我的脚本是这样的
#!/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";
并且在服务器 /p/inway/bin/inway71 中是一个脚本:
#!/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+"$@"}
所以当我登录到我的服务器并在我的终端中 运行 这个脚本时,我将被引导到某个路径(我不知道它是什么,但我猜它是我可以的另一个服务器使用此 bash 脚本登录)我可以完成 activity 的其余部分,例如 cd、ls、cat 等)
但是当我从我的客户端系统 运行 将控制传递给终端并等待我的输入时,在我的终端中我收到一条错误消息,
stty:standard input:Invalid argument
在我的终端中,我可以执行 ls 或任何操作,但无法从 perl 脚本执行并捕获结果。
我怎样才能解决这个问题并得到我想要的?
有2个系统,
客户端系统, 其中我通过对服务器执行 openssh 将命令传递给服务器,我的脚本是这样的
#!/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";
并且在服务器 /p/inway/bin/inway71 中是一个脚本:
#!/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+"$@"}
所以当我登录到我的服务器并在我的终端中 运行 这个脚本时,我将被引导到某个路径(我不知道它是什么,但我猜它是我可以的另一个服务器使用此 bash 脚本登录)我可以完成 activity 的其余部分,例如 cd、ls、cat 等)
但是当我从我的客户端系统 运行 将控制传递给终端并等待我的输入时,在我的终端中我收到一条错误消息,
stty:standard input:Invalid argument
在我的终端中,我可以执行 ls 或任何操作,但无法从 perl 脚本执行并捕获结果。 我怎样才能解决这个问题并得到我想要的?