ajuda com script, quase laaa [RESOLVIDO]

13. Re: ajuda com script, quase laaa [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 03/12/2009 - 16:05h

mas funciona???
na verdade usei o trema(¨) como caracter curinga, mas poderia ser qq outro que vc não utilize nos seus registros ... é só trocar ...
Tamo torcendo ein


  


14. erro :(

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/12/2009 - 12:08h

bom diaaa
vamos la..

sobre o pesquisar.. consegui da seguinte forma..

uso o $ na variavel, ficando assim:

if grep -i $login$ /etc/postfix/virtual; then

ai me resolveu...

sobre o Formata, tah dando erro, e me apaga todo o arquivo, ehehehe

vejaa

sed: -e expression #1, char 0: no previous regular expression



Formata () {
espacos="****************************************"
contador=`echo $email | wc -c | sed 's/ //g'`
if [ $contador -le "40" ]; then
dif=`expr 41 - $contador`
espacos=`echo $espacos | cut -c 1-$dif`
else
espacos=""
fi
echo "$email$espacos$login" | sed 's// /g' > /home/suporte/virtual.alterado
}

obrigado

diego


15. ixixix

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 04/12/2009 - 13:44h

na verdade, faltou o * aki...

echo "$email$espacos$login" | sed 's/*/ /g' >> /home/suporte/virtual.alterado

esse arquivo virtual.alterado foi todo limpo, e adicionado a seguinte linha nele:


dimago@cecred.coop.brachei.txt baron chedima

olhando assim ele funca, a nao ser q inseriu no meio isso..

"achei.txt baron che" se nao tivesse isso ali, ficaria...

dimago@cecred.coop.br dima

q foi o q inseri...

dentro do diretorio tenho um arquivo de nome achei.txt
uma diretorio de nome baron
e um arquivo começando com che

aaaa, e ele nao pode limpar meu arquivo :)

estamos quase laaaaaaaaaaa



16. Re: ajuda com script, quase laaa [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/12/2009 - 15:27h

o seu script foi muito modificado, creio que está muito diferente do inicio do topico

passa seu script como está agr, tbm quero ajudar


17. Re: ajuda com script, quase laaa [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 04/12/2009 - 15:31h

Cara o problema é que o * é um caracter especial ... dá um echo * no seu prompt. ... Viu!!

Eu sugiro usar o !, por exemplo
lembrar de mudar
echo "$email$espacos$login" | sed 's/!/ /g' >> /home/suporte/virtual.alterado


Mas concordo com o Douglas ... manda ai como é que ficou que ai eu arrumo em cima do seu código ... ai fica mais facil!


18. Re: ajuda com script, quase laaa [RESOLVIDO]

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 07/12/2009 - 07:38h

bom dia Srs,

Alterei para !

funcionou... porem...

ele me limpa todo o arquivo... deixando apenas o novo e-mail cadastrado...

Formata () {
espacos="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
contador=`echo $email | wc -c | sed 's/ //g'`

if [ $contador -le "40" ]; then
dif=`expr 41 - $contador`
espacos=`echo $espacos | cut -c 1-$dif`
else
espacos=""
fi
echo "$email$espacos$login" | sed 's/!/ /g' > /home/suporte/virtual.alterado
}

essa eh a unica linha que tenho no arquivo:
dimago@cecred.coop.br dima


porem tenho mais de 40, e ele está removendo o resto....

vlwww


19. aeeee

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 07/12/2009 - 08:15h

pooo... claro.. >> insere sem alterar...
show de bola... ficou perfeito...

acho que posto script todo aqui? que me diz???

outros podem precisar neh?


20. Re: ajuda com script, quase laaa [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 07/12/2009 - 08:32h

Belezinha cara ... posta sim ... que bom que funcionou ... precisando tamo aí!!


21. mais uma coisa...

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 07/12/2009 - 09:02h

po cara... nao paro de inventar neh..

tava querendo que quando fosse deletar, o script perguntasse se ele gostaria de criar um alias para o email...

o que ele faz...

ele le o arquivo virtual, que contem:
meuemail@email.com.br meulogin

que seria o email e o login

se o cara responde que sim, ele nao remove a linha, apenas substitui o $login pelo email que ele ira informar, ficando assim:

meuemail@email.com.br alias_de_email@email.com.br

imagino que deva ter uma nova variavel $novoemail que quando o cara informar, ela vai substituir o meulogin...

serah q tem como fazer?

hehehee
vlwww

aqui segue o Deletar

obrigado mais uma vez

Deletar() {
echo -n "Informe a conta a ser excluida: "
read login
echo
echo "Mensagens do Sistema: "
echo
userdel $login

if test -d /home/emails/$login; then
rm -rf /home/emails/$login
echo
echo "*** Conta e Home do usuario $login foram excluidas com sucesso! ***"
echo
else
echo
echo "*** Nao existe home do usuario $login! ***"
echo
fi

if grep -i $login$ /etc/postfix/virtual; then
cp -p /etc/postfix/virtual /etc/postfix/virtual.bkpscript
grep -i $login$ /etc/postfix/virtual # aqui eu pegaria o resultado do grep -i e jogaria numa variavel
read mostra
echo
echo "$mostra"
echo
echo -n "Gostaria de criar um alias para o e-mail acima?" [S / N] # aqui ele me responderia se quer criar o alias ou nao... se quer, preciso implementar o q pedi acima, se nao, ele continua ai pra baixo...
sed /$login$/d < /etc/postfix/virtual > /etc/postfix/virtual.tmp
mv /etc/postfix/virtual.tmp /etc/postfix/virtual
echo
echo "*** Removido e-mail do usuario $login do arquivo virtual do postfix com sucesso!!! ***"
echo
postmap /etc/postfix/virtual
else
echo
echo "*** Nao existe e-mail cadastrado no arquivo virtual do postfix para o usuario $login informado ***"
echo
fi

echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}



22. quaseee

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 07/12/2009 - 16:01h

fiz um menu de opçoes, que ele pergunta se quer criar o Alias..

se S, ele cria...

se N, ele nao cria..

o que nao funciona eh esse cara aqui..

Cria_Alias() {
echo -n "Informe o novo e-mail: "
read novo_email
#sed 's/$login$/$novo_email/g' >> /etc/postfix/virtual
sed -i 's/$login$/$novo_email/g' /home/suporte/virtual.alterado
echo
echo "Alterado o envio de e-mails de $login para $novo_email"
#ostmap /etc/postfix/virtual
}

na verdade, ele nao troca o $login para o $novo_email

antes de chamar o Cria_Alias, ele tem uma chamada para o Pergunta_Alias q eh o cara q vai chamar um dos dois, e antes disso tudo, ele tem o valor da variável $login

deveria funcionar, nao?

Obrigado

Diego



Deletar() {
echo -n "Informe a conta a ser excluida: "
read login
echo
echo "Mensagens do Sistema: "
echo
userdel $login

if test -d /home/emails/$login; then
rm -rf /home/emails/$login
echo
echo "*** Conta e Home do usuario $login foram excluidas com sucesso! ***"
echo
else
echo
echo "*** Nao existe home do usuario $login! ***"
echo
fi
echo
if grep -i $login$ /home/suporte/virtual.alterado; then
cp -p /home/suporte/virtual.alterado /home/suporte/virtual.alterado.mudei
#grep -i $login$ /etc/postfix/virtual
#read mostra
#echo
#echo "$mostra"
echo
Pergunta_Alias
else
echo "*** Nao existe o login $login informado no arquivo virtual do postfix ***"
fi
echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}


Pergunta_Alias() {
echo "*** Gostaria de criar um alias para o e-mail $login ***?"
echo
echo "S. Sim"
echo "N. Nao"
echo
echo -n "Entre com a opcao desejada => "
read opcao_submenu
echo
case $opcao_submenu in
S) Cria_Alias ;;
N) Nao_Cria_Alias ;;
*) "Opcao incorreta." ; echo ; Pergunta_Alias ;;
esac
}
Nao_Cria_Alias() {
sed /$login$/d < /home/suporte/virtual.alterado > /home/suporte/virtual.alterado.tmp
mv /home/suporte/virtual.alterado.tmp /home/suporte/virtual.alterado
echo
echo "*** Removido e-mail do usuario $login do arquivo virtual do postfix com sucesso!!! ***"
echo
#ostmap /etc/postfix/virtual
echo
}
Cria_Alias() {
echo -n "Informe o novo e-mail: "
read novo_email
#sed 's/$login$/$novo_email/g' >> /etc/postfix/virtual
sed -i 's/$login$/$novo_email/g' /home/suporte/virtual.alterado
echo
echo "Alterado o envio de e-mails de $login para $novo_email"
#ostmap /etc/postfix/virtual
}



23. Re: ajuda com script, quase laaa [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 08/12/2009 - 11:56h

Dei uma olhada por cima, em eparece que
sed -i 's/$login$/$novo_email/g' /home/suporte/virtual.alterado
deveria ser algo assim
sed -i 's/$login$/$novo_email/g' /home/suporte/virtual > /home/suporte/virtual.alterado
e depois o mv ou cp para o arquivo original

Mas depois vou olhar com mais calma ...



24. funcandoooo

Diego Maciel Gomes
dimago

(usa Red Hat)

Enviado em 08/12/2009 - 13:28h

opa..
passei ontem e hoje mexendo nele...

ainda tive mais uma demanda, que seria remover o redirecionamento...

nao sei se os comandos que usei sao os melhores, mas estao funcionando, queis avaliar?

Pergunta_Redirect() {
antigo_email=`grep @ /home/suporte/virtual.tmp1 | awk {'print $1'}`
echo "*** Gostaria de criar um redirecionamento para o e-mail $antigo_email ***?"
echo
echo "S. Sim"
echo "N. Nao"
echo
echo -n "Entre com a opcao desejada => "
read opcao_submenu
echo
case $opcao_submenu in
S) Cria_Redirect ;;
N) Nao_Cria_Redirect ;;
*) "Opcao incorreta." ; echo ; Pergunta_Redirect ;;
esac
}

Nao_Cria_Redirect() {
cp -p /home/suporte/virtual.alterado /home/suporte/virtual.bkp
sed /$login$/d < /home/suporte/virtual.alterado > /home/suporte/virtual.alterado.tmp
mv /home/suporte/virtual.alterado.tmp /home/suporte/virtual.alterado
echo
echo "*** Removido e-mail $antigo_email do arquivo virtual do postfix com sucesso!!! ***"
echo
#postmap /etc/postfix/virtual
rm -rf /home/suporte/virtual.tmp1
echo
}

Cria_Redirect() {
echo -n "Informe o novo e-mail: "
read novo_email
cp -p /home/suporte/virtual /home/suporte/virtual.bkp
sed s/$login$/$novo_email/g < /home/suporte/virtual.alterado > /home/suporte/virtual.tmp
mv /home/suporte/virtual.tmp /home/suporte/virtual.alterado
echo
echo "Alterado o envio de e-mails de $antigo_email para $novo_email"
rm -rf /home/suporte/virtual.tmp1
#postmap /etc/postfix/virtual
}

Remove_Redirect() {
echo -n "Informe o e-mail que possui redirecionamento: "
read redirect_email
echo

if grep ^$redirect_email < /home/suporte/virtual.alterado; then
sed /^$redirect_email/d < /home/suporte/virtual.alterado > /home/suporte/virtual.mexi4
mv /home/suporte/virtual.mexi4 /home/suporte/virtual.alterado
echo
echo "*** Removido o redirecionamento do email $redirect_email do arquivo virtual do postfix ***"
# postmap /etc/postfix/virtual
else
echo
echo "*** Nao existe o e-mail $redirect_email no arquivo virtual do postfix ***"
echo
fi
echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal


abraço e obrigado mais uma vez...



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts