problemas com argumentos [RESOLVIDO]

1. problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 13:46h

meu objetivo eh criar um script que me diga quando existe uma atualização no slackware utilizando o slackpkg

veja como está ateh agr:

========================================

#!/bin/bash

#verifica se o slackpkg esta atualizado e envia o resultado para o arquivo aa
su -c 'slackpkg check-updates' > aa

i="No news is good news"
a=`grep "No news is good news" aa`

echo $a

if [ $a = $i ]; #verifica se o slackpkg esta atualizado

then

su -c 'slackpkg upgrade-all' #atualiza o sistema

else

su -c 'slackpkg update' #atualiza o slackpkg

fi

===============================================

o nome do script eh "atualização"

e veja oq esta acontecendo

==================================================

douglas@Casa:~/scripts/atualização$ sh atualização
Password:
No news is good news
atualização: line 11: [: too many arguments
Password:

========================================

ou seja, se eu coloca a senha dnovo, ele executa a linha 19 "su -c 'slackpkg update'"

sendo que era primeiro ele analizar se o slackpkg esta atualizado

qualquer resposta será vem vinda

vlw


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 14:28h

troca isso:

#verifica se o slackpkg esta atualizado
if [ "$a" = "$i" ]; then
su -c 'slackpkg upgrade-all' #atualiza o sistema
else
su -c 'slackpkg update' #atualiza o slackpkg
fi

mas acho q a logica ta meio doida, nao?
{{{
se [ "sem novidades" = "sem novidades" ]; entao
su -c atualiza tudo
se nao
su -c atualiza o slackpkg
fim se
}}}

como que funciona esse slackpkg???

3. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 14:43h

xD funcionou

fiz do meu jeito e soh coloquei com as aspas

vlw

funciona assim:

slackpkg check-updates ele verifica se esta atualizado

se ele estiver atualizado aparesse o seguinte

===============================


No news is good news

================================

igual como esta ai, ou seja ele pula 2 linhas coloca o resultado e pula mais uma

por isso eu enviei o resultado para o arquivo "aa" e depois busquei o resultado com o grep

a questa eh, e se o slackpkg nao estiver atualizado, eu nao sei oq aparece, pois soh agr que estou usando o "slackpkg check-updates"

antigamente eu atualizava direto sem saber se precisava ou nao

======================================================

bom ja que ele esta funcionando, ta tudo ok

mas tem um porem, eu preciso de um loop aki

pq se ele nao estiver atualizado, ele vai atualizar e vai acabar, ai terei que rodar dnovo para atualizar

====================================================




4. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 15:03h

sim, essa parte toda eu sei como é, quero saber o seguinte... por que vc atualiza o sistema todo se nao tem novidades e em parte se tiver???

o loop q vc quer deve ser iso:

while [ 0 ]; do

seu script aqui dentro
sleep 300 ;# em segundos... altere pra nao ficar rodando o tempo todo, para um numero beeeeem grande, tipo equivalente a 24, 48, 72 horas etc

done

fim.


5. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 15:29h

agr deixei meu script assim

sei que esta tudo errado, mas da p ver oq eu quero fazer

===========================================

#!/bin/bash

u=`whoami` #verifica o usuario logado atriui o valor para "u"


while [ "$u" = "root" ] # verifica se o usuario é o root

do

su

done

while [ 0 ]; do

slackpkg check-updates > aa

i="No news is good news"
a=`grep "No news is good news" aa`

echo $a

if [ "$a" = "$i" ]; #verifica se o slackpkg esta atualizado

then

slackpkg upgrade-all #atualiza o sistema

else

slackpkg update #atualiza o slackpkg

fi

sleep 300

done

======================================

nao sei se eu coloquei o while no lugar certo

tbm queria que assim que acabasse de executar "slackpkg upgrade-all" o script parasse de rodar


6. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 20:26h

bom agr consegui dar um jeito na permissão root, olhei como era feita a instalação do nessus e peguei parte do codigo

============================================

#!/bin/bash

case `id` in
uid=0*)
;;
*)
echo "Você precisa do prefilegio root para atualizar"
exit 1
;;
esac



slackpkg check-updates > aa

i="No news is good news"
a=`grep "No news is good news" aa`

echo $a

if [ "$a" = "$i" ]; #verifica se o slackpkg esta atualizado

then

slackpkg upgrade-all #atualiza o sistema

else

slackpkg update #atualiza o slackpkg

fi

sleep 300

done


7. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 20:32h

cara, vc ta de parabens, mostrou que tem espirito...

vc podia fazer o teste com o if mesmo, bastava colocar o exit como condicao caso nao fosse root.

algo como

if [ ! `whoami` = "root" ]; then
echo "precisa ser root"
exit 1
fi


8. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 21:13h

acho que vou fazer do meu jeito msm, mas agr coloquei mais coisa

==============================================

if [ ! `whoami` = "root" ]; then
echo "Você precisa do prefilegio root para atualizar"
echo "deseja fazer o login agora? (y/n)"; read p

if [ "$p" = y ] ; then

su

else

exit 1

fi

fi

====================================

olha oq acontece

douglas@Casa:~/scripts/atualização$ sh atualização
Você precisa do prefilegio root para atualizar
deseja fazer o login agora? (y/n)
y
Password:
bash-3.1# exit
exit
atualização: line 19: slackpkg: command not found

atualização: line 34: slackpkg: command not found

=============================

quero que ele soh de sequencia ao script como root

e tbm desse jeito, seu eu digitar a senha do root errado, ele da se quencia ao script

douglas@Casa:~/scripts/atualização$ sh atualização
Você precisa do prefilegio root para atualizar
deseja fazer o login agora? (y/n)
y
Password:
Sorry.
atualização: line 19: slackpkg: command not found

atualização: line 34: slackpkg: command not found




9. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/10/2009 - 21:44h

esquece isso... ou o cara roda como root ou nao roda, pq qdo ele autentica como vc diz ele abre novo shell em fork ai ele roda o proximo comando... em outra shell como root


tendeu?

poe o teste como eu falei... o if q eu te passei substitui o case/ esac ... era so isso... o outro script tava melhor, funcionava.. fica nele.. so troca o case pelo if.. so isso

depois daquilo insere o seu script

ok?


10. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/10/2009 - 01:05h

nao entendi muito bem oq vc quis dizer

ai decidi mudar umas coisas

======================================

#!/bin/bash

if [ ! `whoami` = "root" ]; then
echo "Você precisa do prefilegio root para atualizar"
exit 1
fi

slackpkg check-updates > aa

a=`grep "No news is good news" aa`
i="No news is good news"

while [ "$a" = "$i" ]; do

slackpkg update #atualiza o slackpkg

slackpkg check-updates > aa #verifica se o slackpkg esta atualizado e envia o resultado para o arquivo aa

a=`grep "No news is good news" aa`

done

echo "deseja instalar as atualizações agora?" ; read n

if [ "$n" = "y" ]

then

slackpkg upgrade-all #atualiza o slackpkg

else

exit 1

fi

====================================================

a questao eh que ele soh atualiza


11. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/10/2009 - 01:20h

finalmente consegui xD

===============================================

#!/bin/bash

if [ ! `whoami` = "root" ]; then #verifica se o usuario logado é o root, caso nao seja ele sai do script
echo "Você precisa do prefilegio root para atualizar"
exit 1
fi

slackpkg check-updates > aa

a=`grep "No news is good news" aa` #busca o o texto "No news is good news" no arquivo "aa" e define o resuldado como o valor da variavel "a"
i="No news is good news"

until [ "$a" = "$i" ] ; do

slackpkg update #atualiza o slackpkg

slackpkg check-updates > aa #verifica se o slackpkg esta atualizado e envia o resultado para o arquivo aa

a=`grep "No news is good news" aa`

done

echo "deseja instalar as atualizações agora?" ; read n #atribui valor para variavel "n"

if [ "$n" = "y" ]

then

slackpkg upgrade-all #atualiza o slackpkg

else

exit 1

fi

=================================================


12. Re: problemas com argumentos [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/10/2009 - 01:23h

parabens cara, voce foi meu melhor aluno ate agora.

continue firme ai no shell script, sempre paga (e muito!!! volta e meia eu saio de uma com um script) saber isso no Linux...



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts