自我解答:如何使用单个cli命令停止群集上的所有任务,并轻松允许传递额外参数。
qni6mghb1#
以下将:1.获取集群中的所有任务1.使用jq选择任务arns,-r删除json值中的引号。1.使用xargs将每个arn传递到下一个命令,值将附加到命令(在--task之后)。n-1仅确保每个arn有一个命令,不确定是否需要。aws ecs list-tasks --cluster "$ecs_cluster" | jq -r ".taskArns[]" | xargs -n1 aws ecs stop-task --no-cli-pager --cluster "$ecs_cluster" --task--no-cli-pager防止stop-task的输出在每次执行后停滞。欢迎任何优化。我看到了awk的另一个解决方案,但发现很难使用传递额外的参数到第二个命令。
jq
-r
xargs
n-1
aws ecs list-tasks --cluster "$ecs_cluster" | jq -r ".taskArns[]" | xargs -n1 aws ecs stop-task --no-cli-pager --cluster "$ecs_cluster" --task
--no-cli-pager
stop-task
1条答案
按热度按时间qni6mghb1#
以下将:
1.获取集群中的所有任务
1.使用
jq
选择任务arns,-r
删除json值中的引号。1.使用
xargs
将每个arn传递到下一个命令,值将附加到命令(在--task之后)。n-1
仅确保每个arn有一个命令,不确定是否需要。aws ecs list-tasks --cluster "$ecs_cluster" | jq -r ".taskArns[]" | xargs -n1 aws ecs stop-task --no-cli-pager --cluster "$ecs_cluster" --task
--no-cli-pager
防止stop-task
的输出在每次执行后停滞。欢迎任何优化。我看到了awk的另一个解决方案,但发现很难使用传递额外的参数到第二个命令。