Download scripts/aws/stop_instance.sh from augustocsc/test_base_infix_1epoch: direct link, hf CLI and curl.
- Browser
- Download file 2.73 kB
-
https://huggingface.co/augustocsc/test_base_infix_1epoch/resolve/main/scripts/aws/stop_instance.sh
- Command line
-
hf download hf://augustocsc/test_base_infix_1epoch/scripts/aws/stop_instance.sh
-
curl -L -o stop_instance.sh https://huggingface.co/augustocsc/test_base_infix_1epoch/resolve/main/scripts/aws/stop_instance.sh
2.73 kB
| # | |
| # Para uma instância AWS específica do Augusto (com validação de prefixo) | |
| # Uso: ./stop_instance.sh INSTANCE_ID | |
| # | |
| set -e | |
| # Colors | |
| 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 "" | |
| # Validar que a instância existe e tem prefixo "augusto-" | |
| 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 | |
| # Parse info | |
| 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 "" | |
| # Validar prefixo "augusto-" | |
| 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 | |
| # Verificar se já está parada | |
| if [ "$STATE" == "stopped" ]; then | |
| echo -e "${GREEN}✓ Instância já está parada.${NC}" | |
| exit 0 | |
| fi | |
| # Verificar se está em transição | |
| 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 | |
| # Parar a instância | |
| 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 | |