繁体   English   中英

如何知道实例是否正在使用 bash 和 awscli 运行?

How to know if an instance is running using bash and awscli?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

现在我在我的脚本(bash)中使用 awscli 在创建实例后发送请求检查实例状态。 但我收到这条消息:

/bin/bash: eval: line 130: syntax error: unexpected end of file

我尝试了两种方法:

这是第一个:

while INSTANCE_STATE=$(aws ec2 describe-instances \
--instance-ids $INSTANCE_ID --output text  \
--query 'Reservations[*].Instances[*].State.Name');  \
test "$INSTANCE_STATE" = "pending";  \
do sleep 1; echo -n '.' done;  \
echo " $INSTANCE_STATE"

然后,另一个:

until [ test "$INSTANCE_STATE" = "running" ] do \
echo 'Wait for instance.'; \
INSTANCE_STATE=$(aws ec2 describe-instances \
--instance-ids $INSTANCE_ID --output text \
--query 'Reservations[*].Instances[*].State.Name'); \
sleep 2; echo -n '.' done; \
echo " $INSTANCE_STATE"

在这两种情况下,结果几乎相同。 我做错了什么? 请问有什么帮助吗?

1 个回复

下面是一个线性命令:

while INSTANCE_STATE=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID --output text --query 'Reservations[*].Instances[*].State.Name'); test "$INSTANCE_STATE" = "pending"; do sleep 1; echo -n '.'; done

下面是 shell 脚本:

#!/bin/bash
INSTANCE_ID=
while INSTANCE_STATE=$(aws ec2 describe-instances --instance-ids $INSTANCE_ID --output text --query 'Reservations[*].Instances[*].State.Name');
test "$INSTANCE_STATE" = "running"
do
sleep 1
echo -n '.'
done
echo " $INSTANCE_STATE"

您应该坚持使用第一个代码,因为另一个代码首先评估条件然后分配值,而在第一个代码中它首先分配值然后评估哪个将节省分配变量步骤。

由于上述原因,其他代码抛出以下错误:

line 3: [: too many arguments

您在代码中看到的问题在某些地方是额外的\ 否则,您的代码工作正常。

1 如何使用bash知道另一个Linux实例是否正在使用共享磁盘中的文件?

我需要知道是否有办法知道另一个Linux实例是否正在使用共享磁盘中的文件。 我有2个Linux机器共享一个磁盘。 在每个随机时间,分析过程完成后,第一台计算机将结果文件(具有连续文件名)写入共享磁盘。 在另一台计算机上,我有一个bash脚本来验证文件是否已由第一台计算机完成。 ...

3 如何知道该App实例是否正在运行

有什么方法可以定期检查我的应用程序是否未运行? 如果它没有运行,如何自动将其打开? 这个想法是,我们有一个连接到服务器的应用程序,并且希望用户始终保持连接状态。 解决此问题的想法是,创建一个“服务”,该服务始终每N秒检查一次用户是否登录,如果用户已退出,则该应用应自动启动。 有任 ...

2017-07-14 05:32:27 0 37   android
8 Bash 检查脚本是否使用精确选项运行

我知道如何检查脚本是否已经在运行( if pidof -o %PPID -x "scriptname.sh"; then... )。 但是现在我有一个接受输入作为标志的脚本,因此它可以用于多种不同的场景,其中许多可能会同时运行。 例子: /opt/scripts/backup/tar.sh -d ...

2019-12-10 18:38:40 2 77   bash/ pid
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM