| #!/bin/bash |
| |
| |
| |
| |
|
|
| set -e |
|
|
| |
| GREEN='\033[0;32m' |
| YELLOW='\033[1;33m' |
| RED='\033[0;31m' |
| BLUE='\033[0;34m' |
| NC='\033[0m' |
|
|
| if [ $# -ne 1 ]; then |
| echo -e "${RED}Erro: Instance ID não fornecido${NC}" |
| echo "Uso: $0 INSTANCE_ID" |
| echo "" |
| echo "Para ver suas instâncias:" |
| echo " bash scripts/aws/list_augusto_instances.sh" |
| exit 1 |
| fi |
|
|
| INSTANCE_ID="$1" |
|
|
| echo -e "${BLUE}Parando instância: $INSTANCE_ID${NC}" |
| echo "" |
|
|
| |
| INSTANCE_INFO=$(aws ec2 describe-instances \ |
| --instance-ids "$INSTANCE_ID" \ |
| --query "Reservations[0].Instances[0].[State.Name,Tags[?Key=='Name'].Value|[0],InstanceType]" \ |
| --output text 2>/dev/null) |
|
|
| if [ -z "$INSTANCE_INFO" ]; then |
| echo -e "${RED}Erro: Instância $INSTANCE_ID não encontrada${NC}" |
| exit 1 |
| fi |
|
|
| |
| STATE=$(echo "$INSTANCE_INFO" | cut -f1) |
| NAME=$(echo "$INSTANCE_INFO" | cut -f2) |
| TYPE=$(echo "$INSTANCE_INFO" | cut -f3) |
|
|
| echo "Nome: $NAME" |
| echo "Tipo: $TYPE" |
| echo "Estado: $STATE" |
| echo "" |
|
|
| |
| if [[ ! "$NAME" =~ ^augusto- ]]; then |
| echo -e "${RED}⚠️ AVISO: Esta instância NÃO tem prefixo 'augusto-'!${NC}" |
| echo -e "${RED}⚠️ Pode pertencer a outra pessoa.${NC}" |
| echo "" |
| echo -e "${YELLOW}Tem certeza que deseja parar esta instância?${NC}" |
| read -p "Digite 'CONFIRMO' (maiúsculo) para continuar: " CONFIRM |
|
|
| if [ "$CONFIRM" != "CONFIRMO" ]; then |
| echo -e "${GREEN}Operação cancelada. Instância segura!${NC}" |
| exit 0 |
| fi |
| fi |
|
|
| |
| if [ "$STATE" == "stopped" ]; then |
| echo -e "${GREEN}✓ Instância já está parada.${NC}" |
| exit 0 |
| fi |
|
|
| |
| if [ "$STATE" == "stopping" ]; then |
| echo -e "${YELLOW}Instância já está em processo de parar...${NC}" |
| echo "Aguardando..." |
| aws ec2 wait instance-stopped --instance-ids "$INSTANCE_ID" |
| echo -e "${GREEN}✓ Instância parada!${NC}" |
| exit 0 |
| fi |
|
|
| |
| if [ "$STATE" == "running" ]; then |
| echo -e "${BLUE}Enviando comando para parar...${NC}" |
| aws ec2 stop-instances --instance-ids "$INSTANCE_ID" > /dev/null |
|
|
| echo -e "${BLUE}Aguardando instância parar...${NC}" |
| aws ec2 wait instance-stopped --instance-ids "$INSTANCE_ID" |
|
|
| echo "" |
| echo -e "${GREEN}======================================${NC}" |
| echo -e "${GREEN}✓ Instância parada com sucesso!${NC}" |
| echo -e "${GREEN}✓ Custos pararam de acumular.${NC}" |
| echo -e "${GREEN}======================================${NC}" |
| else |
| echo -e "${YELLOW}Instância está no estado: $STATE${NC}" |
| echo -e "${YELLOW}Não foi possível parar.${NC}" |
| exit 1 |
| fi |
|
|