Net::telnet可以在远程机器上交互安装软件么?

Net::telnet可以在远程机器上交互安装软件么?

use Net::Telnet ();
$t = new Net::Telnet(
    Timeout => 10,
);
$t->open("10.13.100.1");
$t->login("root", "root");
$line = $t->cmd("cd /qwertyusdfg");
print "line ---- $line \n";
$t->cmd("bunzip2  CSKtomcatbundle_1.3.1_sparc.pkg.bz2");
$t->cmd("pkgadd -d CSKtomcatbundle_1.3.1_sparc.pkg");
$t->cmd("cp ./Web20Emulator.war /opt/coolstack/tomcat6/webapps");
$t->cmd("/opt/coolstack/tomcat6/bin/startup.sh");

print("start TOMCAT in  successful  \n");




我发现运行过之后,没有安装,但是程序运行到了最后。。

为何不上传一个脚本文件,然后用 Net::Telnet 调用它执行呢?
谢谢,我刚改了下,但是又碰到一个问题,我需要pkgadd -d ,似乎这样在我的机器屏幕上看不到吧?

[Copy to clipboard] [ - ]
CODE:
use Net::Telnet ();
$t = new Net::Telnet(
        Timeout => 10,
#        Prompt  => '/\$ $/'
);
$t->open($ip);
$t->login($username, $passwd);
$line = $t->cmd("cd $tomcat");
my @perl = $t->cmd("which perl");
chomp(@perl);
#print "@perl /$tomcat/Geocoder.pl \n";
$t->cmd("@perl /$tomcat/Geocoder.pl");

Geocoder.pl就在远程机器上,它里面包含pkgadd -d 等语句

你没有模式匹配,我不知道你是怎样运行的
建议你用perl/expect
楼上能不能说的详细一点,我不是很明白
现在的问题是可以net::ftp把东西放到远程机器上去,但就是pkgadd -d看不到安装界面
试图解决方法:
1、pkgask 生成一个安装文件,过程中弹出错误,说CSKtomcat里面不包含交互安装的文件,失败
2、先建一个文件file,里面输入
y
2
用pkgadd -d CSKtomcat <file,第一个y可以进行下去,2就不行了(安装CSKtomcat第一步要同意安装y,第二步选择哪个版本,选2),失败

这个perl/expect可以解决这个问题么?还有别的解决方法么?
谢谢大家了

tomcat? 没用过
用没用tomcat倒是无所谓
只有知道 无交互,远程安装软件包就可以了 呵呵
flw 的方法不行吗?
我在3楼回复过了,pkgadd -d 看不到安装的交互界面。。。
我在自己机器上用Net::Telnet ()执行
perl /$tomcat/Geocoder.pl
Geocoder.pl在远程机器上,里面有pkgadd -d CSKtomcat等语句
我在自己机器上可以看到安装的界面么?
是我写错了?还是用Net::Telnet ()根本做不到?
下面是Geocoder.pl中安装tomcat的方法

[Copy to clipboard] [ - ]
CODE:
sub install_tomcat {
        if ( $install !~ /\bCSKtomcat/ ) {
                print("bunzip CSKtomcat..... \n");
                if ( -e $CSKtomcat1 . $pkg ) {
                        print(
                                "$CSKtomcat1 install file has been Extracted,Continue...  \n");
                }
                else {
                        my_system("bunzip2  $CSKtomcat1$bz2  2>>./web20kit_setup$date.log");
                }
                my_system("pkgadd -d $CSKtomcat1$pkg");
        }
        print("CSKtomcat has been installed successful \n");
}