Created
August 2, 2023 19:25
-
-
Save PauloDuarte43/51881a9d4ca85042ccd00523f780b2e5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Lista de IDs de todos os containers Docker | |
container_ids=$(docker ps -aq) | |
# Data limite em segundos (10 dias = 10 * 24 * 60 * 60 segundos) | |
limit=$((7 * 24 * 60 * 60)) | |
# Lista de containers que não devem ser afetados pelo script | |
excecoes=("paulo_antunes-nginx-1" "paulo_antunes-webmock-1" " paulo_antunes-mongoadmin-qtm-suat-requests-1" "paulo_antunes-web-qtm-suat-requests-1" "paulo_antunes-web-trader-request-1" "cloudbeaver-desenv") | |
# Loop para verificar cada container e parar/apagar se necessário | |
for id in $container_ids; do | |
# Verificar se o nome do container está na lista de exceções | |
nome=$(docker inspect -f '{{ .Name }}' $id | sed 's/^\///') # Remove a barra inicial do nome do container | |
if [[ " ${excecoes[@]} " =~ " ${nome} " ]]; then | |
echo "Container $nome está na lista de exceções. Ignorando." | |
else | |
# Verificar o status do container | |
status=$(docker inspect -f '{{ .State.Status }}' $id) | |
if [ "$status" != "running" ]; then | |
echo "Deletando container $id (Status: $status)" | |
docker rm $id | |
else | |
# Obter a data de criação do container em segundos desde o Epoch | |
created=$(docker inspect -f '{{ .Created }}' $id) | |
created_seconds=$(date -d "$created" +%s) | |
# Obter a data atual em segundos desde o Epoch | |
now_seconds=$(date +%s) | |
# Calcular o tempo em segundos que o container está rodando | |
running_time=$((now_seconds - created_seconds)) | |
if [ $running_time -gt $limit ]; then | |
echo "Parando e deletando container $id (Tempo de execução: $(($running_time / 60 / 60 / 24)) dias)" | |
docker stop $id | |
docker rm $id | |
fi | |
fi | |
fi | |
done | |
echo "Executando image prune" | |
echo "y" | docker image prune -a | |
echo "Executando container prune" | |
echo "y" | docker container prune | |
echo "Executando network prune" | |
echo "y" | docker network prune | |
#echo "Executando volume prune" | |
# docker volume rm $(docker volume ls -q) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment