Вам действительно нужно изменить эту часть кода. Проблема в том, что теперь вам нужно сохранить два значения: самое высокое из найденных до сих пор и соответствующий элемент (1,2).
#!/usr/bin/perl
use warnings;
use strict;
my $close_to = 6.1937;
my ($close, $highest, $corr_highest);
$/ = q();
while (<>) {
my @arr = split;
if ((! defined $close || abs($arr[1] - $close_to) < abs($close - $close_to))
&& $arr[2] > $arr[3]
) {
$close = $arr[1];
}
if (! defined $highest || $arr[3] > $highest) {
($highest, $corr_highest) = @arr[3, 1];
}
if (eof) {
print "$close $corr_highest\n";
undef $_ for $close, $highest, $corr_highest;
}
}
Итак, вы хотите перенаправить порт B: 8888 на A: 4444 с сервера A ,
A:$ ssh -R 8888:localhost:4444 B
Это открывает порт 8888 прослушивает B и перенаправляет соединения на порт 4444 на A , где находится ваш сервер. Это работает, если на сервере ssh
в B для параметра конфигурации GatewayPorts
установлено значение yes .
Если GatewayPorts
установлен на clientpecified , вы можете использовать одну из следующих команд:
A:$ ssh -R :8888:localhost:4444 B
A:$ ssh -R *:8888:localhost:4444 B
GatewayPorts
не настроено или установлено на no связывает сокет на localhost
, что препятствует работе удаленной пересылки.