Criando laço dentro da estrutura if [RESOLVIDO]

1. Criando laço dentro da estrutura if [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/03/2010 - 20:06h

Ola pessoal estou estudando aqui o shell script pois irei tentar o LP1-1 mes que vem e veio uma duvida sobre como montar o meu shell script para limpeza do sistema. Montei ele tudo direitinho e coloquei o if para testar opçoes se e menor ou maior e tal e dentro da chave if eu entrei com o comando for para fazer a exclusão de alguns diretorios so que quando coloco abaixo o comando fi para fechar o if o script retorna com um erro . Ha um detalhe tambem quando ativo o laço for dentro de if o fi no final fica branco e não amarelo quando desativo os laços ele volta a ficar amarelo e tudo volta ao normal !! A minha duvida e se eu realmente poderia criar este laço dentro da estrutura if? . Desde ja agradeço pela atenção.

echo "LIMPANDO LOGS DO SISTEMA"
cd /var/log ; for i in `seq 1 4 ` ; do rm -rf *$i* ; done
rm -rf *.gz ; echo "" > /var/log/messages ; echo "" > /var/log/secure

cd /var/log/squid ; for i in `seq 1 4 `; do rm -rf *[$i,core]* ; done
rm -rf *.gz ; echo "" > store.log ; echo "" > access.log ; echo "" > cache.log ; echo "" > squid.out

cd /var/log/httpd/ ; for i in `seq 1 4 `; do rm -rf *$i* ; rm -rf *.gz ; service httpd reload
echo "LIMPEZA DE LOGS DO SISTEMA FINALIZADO COM SUCESSO | Data:`date`" >> /var/log/manutencao.log

elif [ $valor1 -lt $percent1 ]; then

echo "NAO FOI NECESSARIO A LIPEZA DOS LOGS DO SISTEMA | Data: `date`" >> /var/log/manutencao.log

fi



Abraços
Tiago Eduardo Zacarias



  


2. MELHOR RESPOSTA

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 24/03/2010 - 22:36h

O for da linha do httpd não está sendo fechado com o done, deve ser por isso que o fi não fica colorido.

Outra, devo estar viajando, mas não vi nenhum if aí no seu código :S
Você já começa com um elif para fazer o teste.
Substitua esse elif pelo if que tudo fica ok!

Olha ae se funciona.
t+

3. Re: Criando laço dentro da estrutura if [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/03/2010 - 22:39h

em qual linha da erro??

ja tentou debuga???

bash -xv script.sh

e outra, onde vc colocou o if?? eu nao estou vendo nesse script

eu soh vi o fi e o elif


essa linha aki

elif [ $valor1 -lt $percent1 ]; then

as variaveis tem que estar entre aspas " ", nao sei como eh essa comparação, mas o -lt e todas as comparações que sao feitas por letras serve somente para comparar numeros


4. Resolvido

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/03/2010 - 07:41h

Ola pessoal muito obrigado pela ajuda foi vacilo meu mesmo como o amigo ali disse estava faltando fechar o laço com o dono no final da linha httpd. Foi so fechar para o parametro fi voltar para a cor amarela novamente ai deu certinho.. Segue abaixo o script completo estava faltando a parte das variaveis. ok

#VARIAVEIS PARA LIMPEZA DE /VAR/LOG
valor=`df -h |grep /var/log | awk '{print $5}' | egrep -o '[0-9]*'`
percent=85
# VARIAVEIS PARA LIMPEZA DE /VAR
valor1=`df -h |grep /cache/1 | awk '{print $5}' | egrep -o '[0-9]*'`
percent1=90

# VARIAVEIS PARA LIMPEZA DE /CACHE/*
valor2=`df -h |grep /var| awk '{print $5}' | egrep -o '[0-9]*'`
percent2=85

# SE O USO DA PARTICAO FOR MAIOR DO QUE 85% ENTAO EXECUTA A LIMPEZA DOS LOGS
if [ "$valor" -gt "$percent" ]; then

echo "LIMPANDO LOGS DO SISTEMA"
cd /var/log ; for i in `seq 1 4 ` ; do rm -rf *$i* ; done
rm -rf *.gz ; echo "" > /var/log/messages ; echo "" > /var/log/secure

cd /var/log/squid ; for i in `seq 1 4 `; do rm -rf *[$i,core]* ; done
rm -rf *.gz ; echo "" > store.log ; echo "" > access.log ; echo "" > cache.log ; echo "" > squid.out

cd /var/log/httpd/ ; for i in `seq 1 4 `; do rm -rf *$i* ; rm -rf *.gz ; service httpd reload ; done
echo "LIMPEZA DE LOGS DO SISTEMA FINALIZADO COM SUCESSO | Data:`date`" >> /var/log/manutencao.log

elif [ "$valor1" -lt "$percent1" ]; then

echo "NAO FOI NECESSARIO A LIPEZA DOS LOGS DO SISTEMA | Data: `date`" >> /var/log/manutencao.log

fi







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts