Використання pscp із віддаленими змінними середовища


3

Я використовую pscp.exeдля передачі файлів з Windows в Linux. Ця команда працює добре:

pscp myfile.txt user@host:/airflow/dags

Місце розташування на хості Linux, в яке я хочу перенести файли, зберігається в змінній середовища:

$ echo $AIRFLOW_HOME
/airflow

Я хотів би звернутися до цієї змінної середовища у виклику до pscp. На жаль, це не працює:

pscp myfile.txt user@host:$AIRFLOW_HOME/dags

повернення pscp: unable to open /dags: permission denied(що має сенс, звичайно, /dagsне існує).

Очевидно, що $AIRFLOW_DAGSчастина команди не отримує рішення на хості. Отже, чи є спосіб вказувати змінні середовища на хості в моїй pscpкоманді?

Відповіді:


4

Утиліта pscpне може вирішити віддалені змінні оболонки Як вирішення, виберіть значення змінної спочатку над ssh (використовуючи команду PuTTY plink) та збережіть її у змінній Windows.

Помістіть такі команди в пакетний файл і запустіть його.

@echo off 
for /f %%i in ('plink -ssh user@host echo $AIRFLOW_HOME') do set HOMEVAR=%%i
pscp myfile.txt user@host:%HOMEVAR%/dags

Примітка. Щоб використовувати for /f...команду з командного рядка (поза пакетним файлом), замініть обидва %%iна %i.


Приємно, дякую. Я фактично використовую PowerShell, але впевнений, що можу його адаптувати. Цінується.
jamiet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.