While somar

1. While somar

Rodrigo C
cunhaigo23

(usa Ubuntu)

Enviado em 21/10/2018 - 01:28h

Saudações gostaria muito de uma ajuda gostaria que cada vez que o While roda gostaria que ele soma-se na variável dias a excluir, minha ideia é enquanto o disco tiver acima de 20%, o loop continuaria rodando e acresentando sempre um dia a mais, mantendo ele sempre abaixo ou igual a 20 %. Muito obrigado a todos

hd_por=($( df -h $hd | grep / | cut -s --delimiter="G" --fields=4 | tr -d "%" | tr -d "/"| tr -d "mediausb"))

echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
apagar80=20
clear
date
echo
echo $hd_por
echo "Espaço Utilizado em Disco: $hd_por %";
while [ $hd_por > $apagar80 ]
do
if [ $hd_por > $apagar80 ]
then
sleep 2
dias_excluir=30
echo $dias_excluir
sudo find /media/usb/* -mtime $dias_excluir1 -exec rm -rf {} \;
else
echo Disco Menor que $apagar80%
fi
done



  


2. Re: While somar

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/10/2018 - 12:42h

cunhaigo23 escreveu:
Saudações gostaria muito de uma ajuda gostaria que cada vez que o While roda gostaria que ele soma-se na variável dias a excluir, minha ideia é enquanto o disco tiver acima de 20%, o loop continuaria rodando e acresentando sempre um dia a mais, mantendo ele sempre abaixo ou igual a 20 %. Muito obrigado a todos


adapte de acordo com o que vc precisa

#!/bin/bash

dias_excluir=10
apagar80=1
hd_por=5

while [ $hd_por -gt $apagar80 ]; do

dias_excluir=$(( $dias_excluir + 1))
echo "Agora ... Dias a excluir = $dias_excluir"

hd_por=$(( $hd_por - 1 ))
echo "Agora ... hd_por = $hd_por"

done


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



3. Re: While somar

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/10/2018 - 22:28h

cunhaigo23 escreveu:

Saudações gostaria muito de uma ajuda gostaria que cada vez que o While roda gostaria que ele soma-se na variável dias a excluir, minha ideia é enquanto o disco tiver acima de 20%, o loop continuaria rodando e acresentando sempre um dia a mais, mantendo ele sempre abaixo ou igual a 20 %. Muito obrigado a todos

hd_por=($( df -h $hd | grep / | cut -s --delimiter="G" --fields=4 | tr -d "%" | tr -d "/"| tr -d "mediausb"))

echo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
apagar80=20
clear
date
echo
echo $hd_por
echo "Espaço Utilizado em Disco: $hd_por %";
while [ $hd_por > $apagar80 ]
do
if [ $hd_por > $apagar80 ]
then
sleep 2
dias_excluir=30
echo $dias_excluir
sudo find /media/usb/* -mtime $dias_excluir1 -exec rm -rf {} \;
else
echo Disco Menor que $apagar80%
fi
done


Boa noite.
Segue sugeatão:
#!/bin/bash
LIMITE=20
dias_excluir=10
hd_por=$(df -h|awk '/^\/dev\/sdb1/ {sub("%",""); print $5;}')

LINHA () {
echo -e $_{1..30}'\b=-'
}

clear
while (( $hd_por >= ${LIMITE} ));do
echo -e "$(LINHA)\n$(date "+%x %X.%3N")\nEspaço Utilizado em Disco: ${hd_por} %\nDias a Excluir: ${dias_excluir}\n$(LINHA)\n"
let dias_excluir++
hd_por=$(df -h|awk '/^\/dev\/sdb1/ {sub("%",""); print $5;}')
#COMANDO PARA EXCLUIR os ARQUIVOS
sleep 2.5
done
echo -e "$(LINHA)\n$(date "+%x %X.%3N")\nEspaço Utilizado em Disco menor que 20%\nDias a Excluir: ${dias_excluir}\n$(LINHA)\n"


Note que o condicional não é necessário....
O while faz o trabalho.

att.:
Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts