【发布时间】:2018-02-09 15:14:55
【问题描述】:
我是 Perl 编程的新手,目前正尝试在我的代码中使用 Net::OpenSSH 模块,我的新代码如下,其任务是在远程服务器中运行多个命令,
代码如下::
---
---
foreach $s (@servers) {
my $ssh = Net::OpenSSH->new("$username\@$s", timeout=>30);
$ssh->error and die "Unable to connect: " . $ssh->error;
print "Connected to $s\n";
my $fh = $ssh->capture("df -k /home/ | tail -1") or die "Unable to run command\n";
my @df_arr = split(/\s+/, $fh);
print "$s: Disk space /home/ = $df_arr[3] \n";
my $fh1 = $ssh->capture("svmon -G -O unit=GB | grep memory") or die "Unable to run command\n";
my @sv_arr = split(/\s+/, $fh1);
print "$s: Free memory = $sv_arr[3] \n\n";
close $fh;
undef $ssh;
}
----
----
这段代码不太好,因为我打算让它更简化并尽可能减少一行。
我可以使用任何技术或方法来简化此代码吗?
【问题讨论】:
-
关于美化工作代码的问题,请到codereview.stackexchange.com。
-
您可以从正确缩进代码开始
-
您可以尝试使用 Net::OpenSSH::Parallel 并行运行所有内容。