Как передать файлы из моей локальной системы в другую через систему шлюза (и наоборот )через SSH/SFTP?

вы можете сделать это разными способами, как показано здесь:

$ perl -F- -pale '$"="-";$#F-=2;$_="@F"' file

Разделить линии на тире, установить для соединения элементов массива значение тире, обрезать последние два элемента и установить текущую строку в массив, соединенный тире.

$ awk -F- '{
   t = $1
   for ( i=2; i<NF-1; i++ ) t = t FS $i
   $0 = t
}1' file

Это при простой обработке строк:

$ perl -lne 'print substr($_, 0, rindex($_,"-",-1+rindex($_,"-")))' file

.

$ sed -ne '
   y/-/\n/
   :a;h;s/\n/-/;/\n.*\n/ba
   g;P
' file

Результаты:

bucket,abc-def-ghi
bucket,dde-wwq-ooi
instance,jkl-mno-1-zzz
disk,pqr-stu-10-kuy
3
25.01.2021, 15:42
1 ответ

Если у вас установлена ​​последняя версия OpenSSH (8.0)локально , вы можете использовать переключатель-J(перехода ):

scp -J user@intermediate /local/path/file.txt user@target:/remote/path/

В более старых версиях (, но не ниже 7.3 ), вы можете использовать директивуProxyJump:

scp -o ProxyJump=user@intermediate /local/path/file.txt user@target:/remote/path

Существуют и другие параметры, такие как ProxyCommandили переадресация портов, которые вы можете использовать даже в более старых версиях OpenSSH. Они описаны в Поддерживает ли OpenSSH вход в систему с несколькими переходами?


Для загрузки см. Как загрузить файл с хоста, к которому я могу подключиться только по SSH через другой хост?

2
18.03.2021, 22:34

Теги

Похожие вопросы