[shell-script] Localizar arquivos que contenham uma determinada palavra
Pessoal... Existe alguma forma de pesquisar todos os arquivos que contenham uma determinada palavra no seu conteúdo ? Pelo que vi, os comandos locate e find so verificam o nome do arquivo e eu preciso que ele verifique o conteudo do arquivo. Outra coisa, preciso que seja recursivo, ou seja, ele tem que pesquisar em todos os arquivos que estejam dentro de uma determinada pasta, incluindo as subpastas. É dificil? Obrigado Adriiano
[shell-script] Deletar linhas de um arquivo que contenham uma string?
Pessoal... Como faço pra deletar todas as linhas de um arquivo de texto que contenham uma determinada string ? Obrigado Adriano
[shell-script] Re: Deletar linhas de um arquivo que contenham uma string?
Aproveitando a idéia do companheiro da lista, tentei usando sed mas não deletou não. # sed -n '/teste-123/d' arquivo.txt Isso deveria deletar todas as linhas que contenham a string teste-123 no arquivo.txt correto? Não funciona. Alguem me ajuda? Adriano
[shell-script] Re: Deletar linhas de um arquivo que contenham uma string?
sem o "-n" ta deletando sim... muito obrigado! só pra saber, pra que serve esse "-n" ? valeu
[shell-script] Re: Deletar linhas de um arquivo que contenham uma string?
pior que nao deletou. # sed '/teste-123/d' arquivo.txt isso faz com que o arquivo inteiro passe pela tela mas no final se eu der um cat arquivo.txt | grep teste-123 , as linhas estao todas la. Alguem ajuda?
[shell-script] Re: Deletar linhas de um arquivo que contenham uma string?
Eu to fazendo isso paralelamente... Gosto de aprender! A questao é tempo...to precisando disso pra agora, por isso recorri a lista! Mas afinal, como faço pra deletar as linhas com a string teste-123 no arquivo.txt ? Isso aki nao funciona: # sed '/teste-123/d' arquivo.txt Alguem ajuda?
[shell-script] Problemas com o editor VI
Boa tarde senhores, Parece ridículo mas to recorrendo a lista por que não consigo solucionar um probleminha com o editor de texto VI. Eu tenho um servidor e usava o vi 7.0 que me atendia perfeitamente... Eu acesso via ssh o servidor, copio qualquer texto e era só colocar ele em modo INSERT e usar o botão direito do mouse pra colar tudo. Bom, troquei meu servidor e o vi agora é o 7.2. O problema é que agora quando copio um texto qualquer de fora do vi e coloco ele em modo INSERT para usar o botão direito do mouse pra colar, ele não cola mais nada e muda para o modo INSERT (VISUAL). Resumindo...não da mais pra colar nada. Tem alguma configuração que eu possa fazer pra voltar a usar o botão direito do mouse dentro do vi para colar? Como eu colo no vi novo, ja que nem o :p ta fazendo isso? Valeu Adriano
[shell-script] Como enviar CRTL+C a um programa que esta rodando em segundo plano?
Bom dia... Gostaria de fazer um script usando comando REC para gravar som. Ao rodar o script, a gravaçao de som é iniciada e só pode ser terminada quando a variavel $valor for 0. Até aí tudo bem, mas para terminar corretamente o comando REC sem danificar o arquivo de som gerado, tem que usar um CRTL+C. A dúvida é exatamente essa... Como enviar um CRTL+C ao comando REC atraves do script? Segue um rascunho do script que eu to imaginando: #!/bin/bash rec -t wav gravacao.wav & # Inicia a gravacao em bg valor=1 # Atribui valor 1 (gravando) while [$valor==1] do# Enquanto o valor for 1 valor=$(./getValor); # Recupera o valor(0=parar e 1=gravando) if [$valor==0] then # Se valor=0 tem que parar, entao CRTL+C # aqui teria usar um CTRL+C no comando REC que está em bg fi done É mais ou menos essa a idéia. O problema está em como enviar um CRTL+C para esse programa REC que esta rodando em segundo plano. Alguem pode me ajudar? Obrigado
[shell-script] Re: Como enviar CRTL+C a um programa que esta rodando em segundo plano?
Olá Reinaldo Carvalho, Obrigado pela atenção. Realmente eu posso finalizar todos os processos "rec" usando killall - 2 rec ou o usando kill, mas mesmo assim eu gostaria de aprender como fazer o script enviar um CRTL+C para o processo REC que está em segundo plano? Alguém me ajuda? Obrigado
[shell-script] Re: Como enviar CRTL+C a um programa que esta rodando em segundo plano?
Rs Excelente..Muito obrigado!!! Abraço --- Em shell-script@yahoogrupos.com.br, Fabiano Caixeta Duarte <[EMAIL PROTECTED]> escreveu > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > bossonaroesao06 escreveu: > > Olá Reinaldo Carvalho, > > Obrigado pela atenção. > > > > Realmente eu posso finalizar todos os processos "rec" usando killall - > > 2 rec ou o usando kill, mas mesmo assim eu gostaria de aprender como > > fazer o script enviar um CRTL+C para o processo REC que está em > > segundo plano? > > Você já aprendeu... só falta saber que aprendeu ;) > > O que acontece quando você pressiona simultaneamente as teclas CTRl e C? > Você envia um sinal 2 para o processo que está sendo executado em > primeiro plano no terminal que recebeu a sequência de teclas. Resumindo: > CTRL+C envia um sinal 2 para o processo. > > Kill -2 faz a mesma coisa sem a dependência de o processo > estar sendo executado em primeiro plano. > > Mais informações em man 7 signal. > > Fabiano Caixeta Duarte > Consultor em soluções para Redes de Computadores > Linux User #195299 > Ribeirão Preto - SP > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.5 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFF/Ch6++b4Zs4fOnMRAnjFAJ9emmfmyzsW0diOTDamNsQCfNperwCbBOf3 > nJsiP/cKwWd4moCDBjpsLMc= > =YsLc > -END PGP SIGNATURE- >
[shell-script] Re: Como enviar CRTL+C a um programa que esta rodando em segundo plano?
Pessoal Ainda nao consegui finalizar o processo "rec". Mesmo quando eu inicio o "rec" em segundo plano ele prende o script com essa mensagem: # rec -t wav /root/teste.wav & # Send break (control-c) to end recording Eu tentei abrir outro terminal e matar o processo mas ele não finaliza não. Tentei isso e não funcionou: # killall -2 rec Tentei tambem fazer um scritp adicional para matar o rec e nadaaa: #!/bin/bash pid=$(ps ax | grep "rec -t wav" | awk '{print $1}') /bin/kill -2 $pid A unica forma de matar o rec é ir la no shell e dar o CRTL+C que ele pede. Alguem poderia me ajudar? Obrigado pela atenção e desculpe a insistência
[shell-script] Obter o IP de determinado domínio na internet
Bom dia... Preciso saber o IP de determinado domínio e to pensando em usar o nslookup pra isso, tratando a resposta com o grep. Tentei o seguinte: [EMAIL PROTECTED] ~]# nslookup teste.com | grep "Address" Address:192.168.0.254#53 Address: 200.200.200.200 O problema é que eu queria como resposta somente o IP da segunda linha, no caso 200.200.200.200 Como posso tratar isso pra obter somente o IP desse domínio? Caso tenha uma forma mais fácil de se fazer isso, será bem vinda. Obrigado Adriano
[shell-script] Re: Obter o IP de determinado domínio na internet
Deu certo. Obrigado
[shell-script] Re: Redirecionar erro na tela
Deu certo Obrigado
[shell-script] Redirecionar erro na tela
Pessoal, Estou tentando verificar a existência da conexão ppp0 através do ifconfig e até funnciona certinho. O problema é que quando não existe a ppp0 ele mostra esse erro no meio do script. Tem como tirar isso? Script: #!/bin/bash echo "Verificando a interface ppp0..." placappp=$(ifconfig ppp0 | grep "ppp0: erro") if [ -z "$placappp" ]; then echo "A Interface ppp0 nao existe..." else echo "A Interface ppp0 existe..." fi Olhem o resultado quando nao existe a ppp0: #Verificando a interface ppp0... #ppp0: erro obtendo informaçoes da interface: %s: dispositivo nao encontrado #A Interface ppp0 nao existe... Eu gostaria que ficasse assim: #Verificando a interface ppp0... #A Interface ppp0 nao existe... Alguem me ajuda? Obrigado
[shell-script] Re: Redirecionar erro na tela
Ops.. Nao deu nao... Quando eu redireciono a saida dessa forma, ele nao coloca o valor dentro da variavel. Entao sempre que eu for testar a variavel ela vai estar vazia ja que a saida do ifconfig foi redirecionada. Alguem pode ajudar a resolver isso?? Obrigado
[shell-script] Como executar LOGOUT assim que o script fechar?
Boa tarde... Pessoal, to com uma dúvida... Eu criei um usuário no linux que serve somente para monitorar o squid através do seguinte script: *** #!/bin/bash tail -f /var/log/squid/access.log *** Coloquei isso no .bash_profile então quando esse usuário se loga, o script já começa a rodar automaticamente. Eu gostaria de saber como forçar o usuário a desconectar quando ele fechar o script usando CRTL+C. Ou seja, ele usa CRTL+C para terminar o script e automaticamente recebe um LOGOUT impedindo que ele faça qualquer outra coisa no sistema além de ver esse monitoramento pelo script. Tem como fazer isso? Obrigado
[shell-script] Dúvida na sintaxe do comando IF
Pessoal, qual a diferença entre: if [ $Var1 = $Var2 ] then ... e if [ $Var1 = $Var2 ]; then ... Pra que serve esse ponto e virgula aí? Obrigado
[shell-script] Alguem conhece a biblioteca CURL ?
Alguem conhece essa biblioteca? Sabe como usa? Obrigado
[shell-script] Como criar janelas e botões usando shell?
Pessoal, Eu gostaria de criar janelas e botões no script usando shell-script. So um detalhe, o linux que eu uso é modo texto. Eu queria criar janelas igual a do comando SETUP do FEDORA em modo texto. Obrigado
[shell-script] erro " too many arguments" ???
Sou iniciante e, shell e to fazendo um script que verifica se minha internet ta pingando e escreve isso em um arquivo de log. Aparentemente ta correto mas encontrei o seguinte erro ao executar: [EMAIL PROTECTED] ~]# ./teste.sh ./teste.sh: line 4: [: too many arguments Olha o script: #!/bin/bash respA=$(ping -c 1 200.204.0.10 | grep "1 received") dt=$(date) if [ -z $respA ] then echo "nao esta respondendo em : $dt" >> /root/log.txt else echo "esta respondendo em : $dt" >> /root/log.txt fi exit Por que deu esse erro na linha do IF? Obrigado
[shell-script] Idiomas diferentes no shell e no crontab?
Quando eu executo um script "na mão" ele me retorna a data em portugues mas se eu colocar ele pra ser executado na crontab ele retorna a data em ingles. Por que ocorre isso se o usuario da crontab é o mesmo do shell que eu to executando? executado crontab: Thu Nov 29 13:37:01 BRST 2007 executado na mão : Qui Nov 29 13:37:48 BRST 2007 Valeu
[shell-script] Re: erro " too many arguments" ???
Como seria melhor fazer esse teste entao Flavio? Toda ajuda eh bem vinda! Obrigado --- Em shell-script@yahoogrupos.com.br, "Flavio Junior" <[EMAIL PROTECTED]> escreveu > > Coloque o "$respA" entre aspas.. > > Mas há formas melhor de fazer esse teste, usando o return code.. > Veja o $? > > > Flavio do Carmo Junior > > On Nov 29, 2007 1:20 PM, bossonaroesao06 <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > Sou iniciante e, shell e to fazendo um script que verifica se minha > > internet ta pingando e escreve isso em um arquivo de log. > > Aparentemente ta correto mas encontrei o seguinte erro ao executar: > > > > [EMAIL PROTECTED] ~]# ./teste.sh > > ./teste.sh: line 4: [: too many arguments > > > > Olha o script: > > #!/bin/bash > > respA=$(ping -c 1 200.204.0.10 | grep "1 received") > > dt=$(date) > > if [ -z $respA ] > > then > > echo "nao esta respondendo em : $dt" >> /root/log.txt > > else > > echo "esta respondendo em : $dt" >> /root/log.txt > > fi > > exit > > > > Por que deu esse erro na linha do IF? > > Obrigado > > > > >
[shell-script] Re: erro " too many arguments" ???
Esse FPING é melhor do que o PING em que sentido? É mais rapido? --- Em shell-script@yahoogrupos.com.br, Fábio Gomes <[EMAIL PROTECTED]> escreveu > > bossonaroesao06 wrote: > > > > Sou iniciante e, shell e to fazendo um script que verifica se minha > > internet ta pingando e escreve isso em um arquivo de log. > > Aparentemente ta correto mas encontrei o seguinte erro ao executar: > > > > [EMAIL PROTECTED] ~]# ./teste.sh > > ./teste.sh: line 4: [: too many arguments > > > > Olha o script: > > #!/bin/bash > > respA=$(ping -c 1 200.204.0.10 | grep "1 received") > > dt=$(date) > > if [ -z $respA ] > > then > > echo "nao esta respondendo em : $dt" >> /root/log.txt > > else > > echo "esta respondendo em : $dt" >> /root/log.txt > > fi > > exit > > > > Por que deu esse erro na linha do IF? > > Obrigado > > > > > > Testa o fping ( http://fping.sf.net ) > > Veja: > > $fping 200.204.0.10 > 200.204.0.10 is alive > $fping 200.204.0.333 > 200.204.0.333 address not found > $fping 200.204.0.1 > 200.204.0.1 is unreachable > > > O ruim do fping é que você não consegue dizer por qual interface o ping > irá sair, no caso o ping você usa o parâmetro -I. > > > Fábio Gomes dos Santos >
[shell-script] Como saber se a hora atual esta dentro de um intervalo de tempo especifico?
Tem como eu saber se a hora atual esta ou nao dentro de um intervalo de tempo especifico? Por exemplo: O script verifica a hora atual e se estiver entre 07:00:00 e 18:00:00 realiza alguma operacao ( pode ser um echo so pra eu entender). Se a hora atual for 12:10:10 ele retornaria um SIM! Se a hora atual for 22:30:20 ele retornaria um NAO! Valeu
[shell-script] Re: Como saber se a hora atual esta dentro de um intervalo de tempo especifico?
Obrigado pela dica Júlio. Abraço ADRIANO (o carars!!!) --- Em shell-script@yahoogrupos.com.br, "Julio C. Neves" <[EMAIL PROTECTED]> escreveu > > Fala cara (bem que vc podia assinar as msgs para não ser chamado de cara, > não é o cara?) ;) > olha só, pela qtd de perguntas que vc tem feito à lista, vejo que vc está > interessado em aprender shell. Assim sendo, neste > link<http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo004 #E_tome_de_test>e > neste<https://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarBirin aite#Testes_usando_express%25F5es_regular>, > tem exemplos bem parecidos com o que vc deseja, usando construções do > tipo[[ ... ]] com > caracteres coringa e com expressões regulares. > > De quebra, se vc quiser estudar todo o material, com certeza o seu nível de > shell irá aumentar significativamente. Esta lista está cheia de colegas que > aprenderam shell por lá. > -- > Abraços, > Julio > Curso de Shell em Brasília a partir de 08/12 > http://www.trainingtecnologia.com.br/novo_site/shell.htm > Telefone: (61) 3352-7785 > :wq > > Em 29/11/07, bossonaroesao06 <[EMAIL PROTECTED]> escreveu: > > > > Tem como eu saber se a hora atual esta ou nao dentro de um intervalo > > de tempo especifico? > > > > Por exemplo: > > O script verifica a hora atual e se estiver entre 07:00:00 e 18:00:00 > > realiza alguma operacao ( pode ser um echo so pra eu entender). > > > > Se a hora atual for 12:10:10 ele retornaria um SIM! > > Se a hora atual for 22:30:20 ele retornaria um NAO! > > > > Valeu > > > > > > > > > > -- > Abraços, > Julio > Curso de Shell em Brasília a partir de 08/12 > http://www.trainingtecnologia.com.br/novo_site/shell.htm > Telefone: (61) 3352-7785 > :wq > > > [As partes desta mensagem que não continham texto foram removidas] >
[shell-script] Como fazer um script rodar antes de desligar?
Pessoal, gostaria de executar um script imediatamente antes que o computador desligue. Como faço isso? Obrigado
[shell-script] Probleminha com o comando LESS
Bom dia... Estou tentando fazer um pequeno script para pesquisar os acessos dos usuários no log do squid, mas nao consigo fazer paginação usando o comando LESS. O script funciona do jeito que eu quero, so falta mesmo a paginação com esse comando LESS. Alguem poderia me dizer o que tem de errado por favor? Será que usei muito pipe (|)? O LESS esta no lugar correto? Olhem o script: *** #!/bin/bash echo "Digite o nome para pesquisa: " read usuario cat /var/log/squid/access.log | grep $usuario | less | awk '{ ip=$3; data=$1; http=$7; printf "\033[40;36;1m%s\033[m \033[40;33;1m%s\033[m \033[40;37;1m% s\033[40;32;1m%s\033[m\n", ip, data, http} }' *** Alguma sugestão? Obrigado pela atenção Adriano
[shell-script] Re: Probleminha com o comando LESS
Se eu colocar no final, ele funciona a paginacao mas as informacoes coloridas feitas pelo AWK nao funcionam.
[shell-script] Re: Probleminha com o comando LESS
ops... o script correto é esse: * #!/bin/bash echo "Digite o nome para pesquisa: " read usuario cat /sata/log/squid/access.log | grep $usuario | awk '{ ip=$3; data=$1; http=$7; printf "\033[40;36;1m%s\033[m \033[40;33;1m%s\033[m \033[40;37;1m% s\033[m\n", ip, data, http }' *
[shell-script] Re: Probleminha com o comando LESS
Deu certo usando a opcao -r do less. Muito obrigado.