shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como desativar a tecla "esc"


From: Leonardo Bites
Subject: Re: [shell-script] Como desativar a tecla "esc"
Date: Wed, 5 Aug 2009 12:21:26 -0300

O unitil é uma boa idéia tinha acabado de chegar nesse ponto já que com o if
o comando só executa uma vez, não estou usando o zenity porque este script é
executado somente em modo texto com acesso via ssh.
Sendo assim não posso usar uma interface grafica pro dialog.

2009/8/5 Julio C. Neves <address@hidden>

>
>
> Fala Leonardo,
> normalmente qdo se testa o $?, o código está mal escrito. Explico pq: os
> cmds if, while e until testam se uma instrução foi bem sucedida ou não.
> Desta forma use um desses cmds para testar se o dialog foi bem sucedido. Eu
> faria algo assim:
>
> until VAR1=$(dialog --backtitle "Caixa Economica Federal" --title "coleta
> de
> logso Multicanal" --no-cancel --stdout --menu "\nSelecione o tipo de Log
> que
>
> deseja capturar:" 18 65 2 1 "Log completo" 2 "Log por data")
> do
> # neste ponto vc deve colocar um dialogo de erro.
> done
>
> Isto é, se o cara der esc, aparecerá o dialogo de erro e em seguida voltara
> a pedir o tipo de log. Se vc não quiser colocar um diálogo de erro, use o
> cmd dois-pontos (:) para não fazer nada.
>
> Uma pergunta: pq vc não usa o zenity ou o kdialog? Experimente em zenity:
>
> until VAR1=$(zenity --list --title "coleta de logso Multicanal" \
> --text "Selecione o tipo de Log que deseja capturar:" \
> --radiolist --column marque --column Para \
> true "Log Completo" \
> false "Log por Data") \
> do
> zenity --error --text "Voce deverá marcar uma das opções"
> done
> --
> Abraços,
> Julio
> Cursos de Shell e Zenity?
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - No RJ ligue (21) 2561-0867;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>
> 2009/8/4 Leonardo Bites <address@hidden<leonardo.bites%40gmail.com>
> >
>
>
> >
> >
> > Galera estou apanhando pra impedir que a tecla esc feche o meu script já
> > tentei como podem ver no codigo tratar o $? =255 mas não funcionou.
> Alguém
> > sabe como faço pra desativar essa tecla no dialog.
> > Segue o meu script
> >
> > #!/bin/bash
> > # Autores: Leonardo Bites e Tiago Mingone
> > # Script de Automacao do processo de captura de Logs do multicanal
> > # Data: 06/02/2009
> > #
> > #Modificacoes
> > #
> > #Vers‹o 1 - AtualizaŤ‹o para pegar Logs via Rede (SSH)
> > #Vers‹o 2 - CorreŤ‹o na funŤ‹o Salva Log para funcionar com as Vers›es
> Etch
> > e Sarge do Debian e na FunŤ‹o DataLog para corrigir o problema de
> > duplicidades na captura
> > #Vers‹o 3 - SeparaŤ‹o da captura do Banco de dados e o log da AplicaŤ‹o e
> > modificacao da nomeclatura dos arquivos para o padrao indicado pela
> > REDEASP.
> > #Vers‹o 4 - AlteraŤ‹o para maquinas 4534 e resoluŤ‹o de bug na coleta do
> > prolog
> > #Vers‹o 5 - Adiciona Informacoes do equipamento
> > #Vers‹o 6 - Modifica dados do equipamento
> > #Vers‹o 7 - Trava saida para prompt (saida somente com senha), finaliza e
> > derruba sessao
> >
> > export SHELL=/bin/bash
> > arq_informacoes="/home/suporte/informacoes.txt"
> >
> > #DeclaraŤ‹o de FunŤ›es
> >
> > function SelecionaLog() {
> > SELECIONALOG=$(dialog --backtitle "Caixa Economica Federal" \
> > --title "coleta de logs Multicanal" \
> > --stdout \
> > --nocancel \
> > --menu "\nSelecione a opcao:" 18 65 9 \
> > 1 "Coleta logs do SIMMA (Extracash.log)" \
> > 2 "Coleta Banco de dados da Aplicacao" \
> > 3 "Coleta logs dos drivers da Perto" \
> > 4 "Coleta logs dos driver Procomp" \
> > 5 "Coleta logs do sistema de atualizacao de pacotes"\
> > 6 "Informacoes do equipamento"\
> > 7 "Alterar dados do equipamento"\
> > 8 "Sair para prompt de comando"\
> > 9 "Finalizar coleta de log")
> > }
> >
> > function TipoLog() {
> > TIPO=$(dialog --backtitle "Caixa Economica Federal" \
> > --title "coleta de logs Multicanal" \
> > --no-cancel \
> > --stdout \
> > --menu "\nSelecione o tipo de Log que deseja capturar:" 18 65 2 \
> > 1 "Log completo" \
> > 2 "Log por data")
> > }
> >
> > function TestaTipo(){
> > if [ "$TIPO" == "1" ]; then
> > DiretorioLog
> > else
> > DataLog
> > fi
> > }
> >
> > function DataLog() {
> > #export LANG=pt_br
> > DATA=$(ls -l -q ${DIRETORIO}${ARQUIVOS} --sort=time |grep -v ^d |awk
> > '{print $6}'|uniq)
> > echo $DATA|tr " " "\12" > /home/suporte/DATA
> > whiptail --title \
> > "Selecione as datas para coleta de LOG" \
> > --checklist "\nDatas disponiveis:" 0 60 $(cat /home/suporte/DATA|wc -l)
> > $(cat /home/suporte/DATA|while read d; do echo "$d" "." "off"; done)
> > 2>/home/suporte/data ;
> > DATA_SEL=$(cat /home/suporte/data)
> > rm /home/suporte/data
> > echo ${DATA_SEL//\"} >/home/suporte/data
> >
> > }
> >
> > function DiretorioLog() {
> > case ${SELECIONALOG} in
> > 1)
> > DIRETORIO=/opt/foton/log/
> > ARQUIVOS="*"
> > ;;
> > 2)
> > DIRETORIO=/opt/foton/db/
> > ARQUIVOS="*"
> > ;;
> > 3)
> > DIRETORIO=/opt/perto/log/
> > ARQUIVOS="*"
> > ;;
> > 4)
> > DIRETORIO=/opt/DieboldProcomp/JXFS/DieboldProcompJXFS/Logs/
> > ARQUIVOS="*"
> > MODELO=$(cat /root/modelo_procomp)
> > if [ '${MODELO}' = '5' ]; then
> > AMI=/opt/DieboldProcomp/AMI/AMITrace*
> > fi
> > if [ -e "/tmp/prolog.log" ]; then
> > TMP="/tmp/prolog.log"
> > else
> > TMP="/tmp/prolog/prolog*"
> > fi
> >
> > if [ -e "/tmp/prolog/" ]; then
> >
> > TMP=${TMP}
> >
> > else
> >
> > if [ -e "/var/prolog.log" ]; then
> > TMP="/var/prolog.log"
> > else
> > TMP="/var/prolog/prolog*"
> > fi
> > fi
> > ;;
> > 5)
> > DIRETORIO=/var/log/
> > ARQUIVOS="*_atm.log"
> > ;;
> >
> > *)
> > ;;
> > esac
> >
> > }
> >
> > function SalvaLog() {
> >
> > TTY=$(tty |cut -d "/" -f 3,4)
> >
> > IP=$(who |grep ${TTY} |awk '{print $6}' |tr -d "( )")
> >
> > if [ -z $IP ]; then
> > IP=$(who |grep ${TTY} |awk '{print $5}' |tr -d "( )")
> > fi
> >
> > USUARIO=$(dialog --stdout --inputbox "Entre com o nome do usuario da
> > maquina de acesso " 0 0 )
> >
> > clear
> > tput cup 10
> > echo -e "\n Aguarde solicitacao da senha "
> >
> > scp /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> > ${USUARIO}@${IP}:/home/${USUARIO}
> > && dialog --stdout --msgbox "Arquivo de Log enviado para a pasta
> > /home/${USUARIO} da maquina ${IP}." 20 60 || dialog --stdout --msgbox
> > "Arquivo de Log nao pode ser transferido verifique as permissoes da pasta
> > /home/${USUARIO} da maquina ${IP}." 20 60
> >
> > ApagaTudo
> > SelecionaLog
> >
> > #PID=$(ps aux |grep $USER@$TTY |head -n 1 |awk '{print $2}')
> > #kill ${PID}
> >
> > }
> >
> > function NomeLog(){
> >
> > eval NOMELOG=${LOG}"_"${NUM_TERMINAL} ; echo $NOMELOG
> >
> > }
> >
> > function CompactarLog() {
> >
> > if [ "$TIPO" = "1" ]; then
> >
> > if [ "${SELECIONALOG}" == "1" ]; then
> > cd ${DIRETORIO}
> > tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz ${DIRETORIO}
> > ${TMP}
> > ${AMI} ${arq_informacoes}
> > else
> > cd ${DIRETORIO}
> > tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> > ${DIRETORIO}${ARQUIVOS} ${TMP} ${AMI} ${arq_informacoes}
> >
> > fi
> > else
> > if [ "${SELECIONALOG}" == "1" ]; then
> > for i in `cat /home/suporte/data`; do ls -l -N ${DIRETORIO}|awk '{print
> $6"
> > "$8}'|grep $i |cut -d " " -f2; done > /home/suporte/arquivo.logs
> > cd ${DIRETORIO}
> > tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> > --files-from=/home/suporte/arquivo.logs ${TMP} ${AMI} ${arq_informacoes}
> > rm /home/suporte/arquivo.logs
> > else
> > for i in `cat /home/suporte/data`; do ls -l -N
> ${DIRETORIO}${ARQUIVOS}|awk
> > '{print $6" "$8}'|grep $i |cut -d " " -f2; done >
> > /home/suporte/arquivo.logs
> > cd ${DIRETORIO}
> > tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> > --files-from=/home/suporte/arquivo.logs ${TMP} ${AMI} ${arq_informacoes}
> > rm /home/suporte/arquivo.logs
> > fi
> > fi
> >
> > }
> >
> > function ApagaTudo(){
> >
> > rm -f /home/suporte/data
> > rm -f /home/suporte/DATA
> > rm -f /home/suporte/arquivo.logs
> > rm -f /home/suporte/*.tar.gz
> > rm -f /home/suporte/consulta.sql
> > rm -f /home/suporte/informacoes.txt
> >
> > }
> >
> > function SairPrompt(){
> > senha=$(dialog --stdout --title "Caixa Economica Federal" --insecure
> > --passwordbox "entre com a senha: " 10 50)
> >
> > senha_md5=$(echo -n "${senha}" | md5sum |tr -d " ")
> >
> > if [ "${senha_md5}" = "0f359740bd1cda994f8b55330c86d845-" ]; then
> >
> > break
> > sair="1"
> >
> > else
> >
> > dialog --title 'Senha Incoreta !' --msgbox 'A senha esta incoreta tente
> > novamente.' 10 50
> >
> > fi
> > }
> >
> > #Excucao do programa
> > echo "interacao"
> > source Informacao_maquina.sh
> >
> > trap "" 2
> >
> > SelecionaLog
> > if [ "$?" != "0" ] && [ "$?" != "255" ];then
> >
> > sair="1"
> >
> > fi
> >
> > echo "select pmtval from pmt where pmtcod = '65';"
> > >/home/suporte/consulta.sql
> >
> > export NUM_TERMINAL=$(/opt/firebird/bin/isql
> > localhost/3050:/opt/foton/db/EXTRACASH.GDB -u sysdba -p caixa -s 1
> > -noautocommit -i consulta.sql | tail -2 | head -1 | cut -f1 -d" ")
> >
> > while [ "${sair}" != "1" ];do
> > case ${SELECIONALOG} in
> >
> > 1)
> > export LOG="extracash"
> > DiretorioLog
> > TipoLog
> > TestaTipo
> > NomeLog
> > CompactarLog
> > SalvaLog
> > ;;
> > 2)
> > export LOG="firebird"
> > DiretorioLog
> > TIPO="1"
> > TestaTipo
> > NomeLog
> > CompactarLog
> > SalvaLog
> > ;;
> > 3)
> > export LOG="perto"
> > DiretorioLog
> > TipoLog
> > TestaTipo
> > NomeLog
> > CompactarLog
> > SalvaLog
> > ;;
> > 4)
> > export LOG="procomp"
> > DiretorioLog
> > TipoLog
> > TestaTipo
> > NomeLog
> > CompactarLog
> > SalvaLog
> > ;;
> > 5)
> > export LOG="atualizacao"
> > DiretorioLog
> > TipoLog
> > TestaTipo
> > NomeLog
> > CompactarLog
> > SalvaLog
> > ;;
> > 6)
> > whiptail --title "Informacoes do Equipamento" --msgbox "$(cat
> > ${arq_informacoes})" 0 60
> > SelecionaLog
> > ;;
> > 7)
> > ./AlteraDados.sh
> > SelecionaLog
> > ;;
> > 8)
> > SairPrompt
> > SelecionaLog
> > ;;
> >
> > 9)
> > ApagaTudo
> > kill -HUP `pgrep -s 0 -o`
> > #sair="1"
> > ;;
> >
> > *)
> > ;;
> > esac
> > done
> >
> > --
> > --
> > Leonardo Bites
> >
> > Linux Registered user #449087
> > ___________________________
> >
> > "Open Source for Open Minds"
> >
> > "Pensamentos tornam-se ações,
> >
> > ações tornam-se hábitos,
> >
> > hábitos tornam-se caráter,
> >
> > e nosso caráter torna-se nosso destino".
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
-- 
Leonardo Bites

Linux Registered user #449087
___________________________

"Open Source for Open Minds"

"Pensamentos tornam-se ações,

ações tornam-se hábitos,

hábitos tornam-se caráter,

e nosso caráter torna-se nosso destino".


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]