从本地计算机在AWS上运行bash脚本以提取tar文件

时间:2018-12-20 05:11:13

标签: bash amazon-ec2

我正在aws ec2实例上从本地计算机执行bash脚本。程序之一是将zip文件推送到ec2实例并在ec2实例中提取。由于zip文件是动态创建的,因此我已将文件名存储在bash脚本中的变量中,并在路径中引用变量名以在EC2实例上执行tar文件。以下是代码:

本地计算机上的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"
我的ec2实例上的

bash脚本:

#!/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脚本路径中为远程位置指定变量名?

0 个答案:

没有答案