Amazon web services AWS EC2用户数据创建SH脚本

Amazon web services AWS EC2用户数据创建SH脚本,amazon-web-services,amazon-ec2,sh,ubuntu-18.04,user-data,Amazon Web Services,Amazon Ec2,Sh,Ubuntu 18.04,User Data,我正在AWS中创建一个新实例并添加一些用户数据,但部分工作是创建一个sh文件,然后执行 我正在努力: #!/bin/bash -x cd /tmp INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id) sudo wget -O ethminer.tar.gz https://github.com/ethereum-mining/ethminer/releases/download/v0.18.0/ethmi

我正在AWS中创建一个新实例并添加一些用户数据,但部分工作是创建一个sh文件,然后执行

我正在努力:

#!/bin/bash -x
cd /tmp
INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
sudo wget -O ethminer.tar.gz https://github.com/ethereum-mining/ethminer/releases/download/v0.18.0/ethminer-0.18.0-cuda-9-linux-x86_64.tar.gz
sudo tar xvfz ethminer.tar.gz
cd bin
cat > runner.sh << __EOF__
#!/bin/bash -x
SERVERS=(us1 us2 eu1 asia1)
while (true); do
  PREFERRED_SERVER=\${!SERVERS[\${!RANDOM} % \${!#SERVERS[@]}]}
  ./ethminer \
    -P stratums://xxx.${!INSTANCE_ID}@\${!PREFERRED_SERVER}.ethermine.org:5555 \
    -P stratums://xxx.${!INSTANCE_ID}@us1.ethermine.org:5555 \
    -P stratums://xxx.${!INSTANCE_ID}@us2.ethermine.org:5555 \
    -P stratums://xxx.${!INSTANCE_ID}@eu1.ethermine.org:5555 \
    -P stratums://xxx.${!INSTANCE_ID}@asia1.ethermine.org:5555 \
  >> /tmp/ethminer.log 2>&1
done
__EOF__
sudo chmod +x runner.sh
sudo nohup ./runner.sh &
#/bin/bash-x
cd/tmp
实例_ID=$(curlhttp://169.254.169.254/latest/meta-data/instance-id)
sudo wget-O ethminer.tar.gzhttps://github.com/ethereum-mining/ethminer/releases/download/v0.18.0/ethminer-0.18.0-cuda-9-linux-x86_64.tar.gz
sudo tar xvfz ethminer.tar.gz
光盘盒
cat>runner.sh>/tmp/ethminer.log 2>&1
完成
__EOF__
sudo chmod+x runner.sh
sudo nohup./runner.sh&

除了sh,我的命令创建了runner.sh脚本,但它是空的。

用户数据不工作,因为它是根据CloudFormation设计的,因此在独立实例中使用的语法不正确。下面是语法正确的脚本,它将生成您的
runner.sh
。我没有测试runner的功能,只是创建了
runner.sh

#!/bin/bash -x
cd /tmp
INSTANCE_ID=$(curl http://169.254.169.254/latest/meta-data/instance-id)
sudo wget -O ethminer.tar.gz https://github.com/ethereum-mining/ethminer/releases/download/v0.18.0/ethminer-0.18.0-cuda-9-linux-x86_64.tar.gz
sudo tar xvfz ethminer.tar.gz
cd bin
cat > runner.sh << __EOF__
#!/bin/bash -x
SERVERS=(us1 us2 eu1 asia1)
while (true); do
  PREFERRED_SERVER=\${SERVERS[\${RANDOM} % \${#SERVERS[@]}]}
  ./ethminer \
    -P stratums://xXX.${insTANCE_ID}@\${PREFERRED_SERVER}.ethermine.org:5555 \
    -P stratums://xxx.${INSTANCE_ID}@us1.ethermine.org:5555 \
    -P stratums://xxx.${INSTANCE_ID}@us2.ethermine.org:5555 \
    -P stratums://xxx.${INSTANCE_ID}@eu1.ethermine.org:5555 \
    -P stratums://xxx.${INSTANCE_ID}@asia1.ethermine.org:5555 \
  >> /tmp/ethminer.log 2>&1
done
__EOF__
sudo chmod +x runner.sh
sudo nohup ./runner.sh &
#/bin/bash-x
cd/tmp
实例_ID=$(curlhttp://169.254.169.254/latest/meta-data/instance-id)
sudo wget-O ethminer.tar.gzhttps://github.com/ethereum-mining/ethminer/releases/download/v0.18.0/ethminer-0.18.0-cuda-9-linux-x86_64.tar.gz
sudo tar xvfz ethminer.tar.gz
光盘盒
cat>runner.sh>/tmp/ethminer.log 2>&1
完成
__EOF__
sudo chmod+x runner.sh
sudo nohup./runner.sh&

当您编写“一切正常”时,您确定这样做有效吗?此脚本将挂起
sudo-apt-update
sudo-apt-install-nvidia-cuda-toolkit
等待用户确认。刚刚编辑了示例,因为问题在runner.sh中,它不起作用。这是ubuntu 20.04实例?@Marcin ubuntu 18.04