Запуск сценария bash на AWS с локального компьютера для извлечения файла tar - PullRequest
0 голосов
/ 20 декабря 2018

Я выполняю bash-скрипт с локального компьютера в экземпляре aws ec2.Одна из программ - отправить zip-файлы в экземпляр ec2 и извлечь их в экземпляр ec2.Поскольку zip-файлы создаются динамически, я сохранил имя файла в переменной в скрипте bash и ссылаюсь на имя переменной в пути для выполнения файла tar в экземпляре EC2.Ниже приведен код:

скрипт bash на локальном компьютере:

extFile="images.tar.gz"
echo "Extracting images from tar file"
ssh -i my.pem ubuntu@12.345.67.890 "bash /home/ubuntu/extractTar.sh /home/ubuntu/$extFile"
echo "Images extracted from tar file"

скрипт bash в моем экземпляре ec2:

#!/bin/bash
FILE="$1"
tar -xf "$FILE" .

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я называю имя файла tar переменным, оно не работает, однако

ssh -i my.pem ubuntu@12.345.67.890 "bash /home/ubuntu/extractTar.sh /home/ubuntu/$extFile"

, когда я запускаю его с фактическим именем

ssh -i my.pem ubuntu@12.345.67.890 "bash /home/ubuntu/extractTar.sh /home/ubuntu/images.tar.gz"

это работает.

Когда я запускал код с именем переменной $extFile в режиме отладки, я мог видеть, что bash правильно отправляет код.

debug1: Sending env LANG = en_IN
debug1: Sending command: bash /home/ubuntu/extractTar.sh /home/ubuntu/images.tar.gz
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2460, received 2496 bytes, in 1.6 seconds
Bytes per second: sent 1549.1, received 1571.8
debug1: Exit status 0

Как указать имя переменной в моемпуть сценария bash для удаленного расположения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...