Нет встроенного пути в ssh
сделать это, кроме использовать перенаправление портов.
Однако существует путь, который работает обоснованно хорошо - ProxyCommand
установка для ssh. Можно указать это на основе на хост в ~/.ssh/config
и используйте его для определения команды для выполнения для соединения с удаленным ssh портом.
Я использую это на нескольких хостах:
host serverB.example.com serverB
ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p
Посмотрите ssh(1)
страница руководства для получения дополнительной информации и nc(1)
от netcat
пакет для команды я использую для передачи на соединении. (Можно использовать что-либо, что делает соединение TCP и передает стандартный ввод и вывод через него, все же.)
perl -F= -lane '$v{$F[0]}=$F[1]; if ($F[0] eq "DATE") {$v{CURRENT_VERSION} eq $v{NEW_VERSION} ? print $v{NEW_VERSION}, " ", $v{DATE} : exit(1)}'
Или, все еще острота, но читаемый
perl -F= -lane '
$v{$F[0]} = $F[1];
if ($F[0] eq "DATE") {
$v{CURRENT_VERSION} eq $v{NEW_VERSION}
? print $v{NEW_VERSION}, " ", $v{DATE}
: exit(1)
}' << END
CURRENT_VERSION=223.3.12.4.5.3
NEW_VERSION=223.3.12.4.5.3
DATE=17.3.2013
END
выводы
223.3.12.4.5.3 17.3.2013
Это должно работать:
echo $CURRENT_VERSION | \
perl -e '($nv,$d)=(shift,shift); /\Q$nv/ and chomp,print "$_ $d\n" while <>' $NEW_VERSION $DATE
Однако могло бы быть лучше включать $CURRENT_VERSION как один из параметров также:
perl -e '($nv,$d,$cv)=@ARGV; $cv=~/\Q$nv/ and print "$cv $d\n"' $NEW_VERSION $DATE $CURRENT_VERSION