【发布时间】:2014-02-25 01:41:56
【问题描述】:
我有点卡在这里我想 ssh 到一台机器,然后运行大约 3 个命令,这些命令基本上是设置命令,然后我想用那台机器的 env 变量返回我的机器
喜欢
setup1
setup2
setup3
env > envtext.txt.
return back
所有这些我必须在 perl 中完成
我尝试了类似的命令
system("ssh @machine command1 && command 2") 不起作用
有类似的吗?
system("ssh @machine command1 -cmd command 2 -cmd command 3")
如果不是最好的方法是什么 就像制作一个 shell 脚本然后调用它,或者我可以在 perl 本身中完成它而不需要任何 shell 脚本?
代码
#!/usr/bin/perl -w
use Net::SSH::Perl;
my $host = "address";
my $user = "name";
my $password = "password";
--建立一个新的连接
my $ssh = Net::SSH::Perl->new($host,
debug=>0,
identity_files => ['path to key'],
options=> ["StrictHostKeyChecking no"]
#interactive => yes,
);
--认证
$ssh->login($user,$password);
--执行命令
my($stdout, $stderr, $exit) = $ssh->cmd("env");
print $stdout;`
它给出的错误是 ssh.pl 第 25 行的 Permission denied
谢谢
【问题讨论】: