DICAS UNIX BRASIL

Matando o X

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3164 - 05 de outubro de 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Matando o X

Um caminho rápido para matar a sua seção X ( isto para o SysV)

for PID in `ps -u$USER | grep "fv[wm]" | awk '{print $1}'`; do kill -9 $PID; done

Ou use isto em um Shell Script: 

--- cut here ---
#!/bin/sh

for PID in `ps -u$USER | grep "fv[wm]" | awk '{print $1}'`; do
kill -9 -$PID
done
--- cut here ---

( utilizamos o [] para tornar o grep mais usual, e sempre deve-se lembrar de usar este comando depois de fazer algo ou não ter nada na seção aberta. O comando que foi apresentado foi escrito para o fvwm, que é o gerenciador de janelas que eu uso. Assim, caso use outro gerenciador de janelas, reeescreva o comando para matar o mesmo ex: motif - mwm, Open Look - olwm, etc ).

Escreva isto em um shell script e coloque-o em um dos diretórios contidos no seu patch ou em algum alias, e pronto, você pode utilizar o comando para sair matando seções :-)

Esta dica é generosamente suportada por: klaus@imprint.uwaterloo.ca

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Colunas rápidas com AWK

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE

DICA UNIX[bb]
Dica Unix 3167 - 08 de outubro de 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Colunas rápidas com AWK

Na maioria das vezes que você usa o awk na linha de comando você está fazendo algo simples como isto aqui:

ps -ef | grep netscape | awk '{print $2}'

Para evitar digitações desnecessárias quando você precisa de imprimir uma ou mais colunas, utilize este script:

------------------- CUT HERE ---------------------------
#!/bin/ksh
# awkc - print out one or more columns

p=\$$( echo $1 | sed 's/,/,\$/g' )
shift
eval "awk '{ print $p }'" $*

# eof
------------------- CUT HERE ---------------------------

 

Agora, você pode efetuar comandos como este: 

ps -ef | awkc 2,1
ou
awkc 1,2,3 /var/adm/messages*

Esta dica é generosamente suportada por: kbeer@dbna.com

------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Monitorando o root no arquivo de senhas

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3166 - 07 de outubro de 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Monitorando o root no arquivo de senhas

Um dos mais populares métodos para ganhar acesso privilegiado a um host Unix é inserir um uid de valor 0 no arquivo passwd do diretório etc. Isto é um dos caminhos para manter uma porta aberta para acessos futuros e ainda a inclusão de backdoors.

O script mostra mensagens de aviso no console se este tipo de mudança é detectada.  Coloque o script no crontab, configurando-o para rodar na periodicidade preferida.

 

CODIGO

 

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Procurando e editando em um comando

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3149 - 20 de setembro 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Procurando e editando em um comando 


Precisa procurar os arquivos no diretório local que contém uma string e depois editá-los no vi ?

Este comando aqui faz isto.

vi `grep -il "target" *.sql 2>/dev/null`

Procura todos os arquivos no diretório que contém aquela expressão regular e depois manda-os para a edição dentro do vi.

vi `find . -type f -name "*.sql" -print | (xargs grep -il "[a-z][a-z]*get" 2>/dev/null)`

Lembrando que é uma boa idéia redirecionar o stderr ( saída de erro ) no caso de haver arquivos que você não tem permissão de leitura.

Isto deve ser feito pois os erros podem ser passados para o vi como argumentos, e ele vai entender que aquilo deve ser um arquivo a ser criado ou editado.

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Encriptando um arquivo ASCII

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3144 - 15 de setembro 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Encriptando um arquivo ASCII

Um arquivo ASCII pode ser facilmente encriptado e desencriptado. 

Para encriptar um arquivo, simplesmente envie via comando pipe a saida do conteúdo do arquivo a ser "encriptado ( crypt )" e redirecione para um novo arquivo. Entre uma senha quando for pedido ( Enter Key ):

$ cat foo | crypt > foo.e
Enter key:

Para desencriptar é só enviar a saída do arquivo encriptado para o comando "crypt" novamente e digitar a senha quando for pedido ( Enter Key ): 

$ cat foo.e | crypt > foo.new
Enter key:

 

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Matando um usuário na lógica do Unix

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 3137 - 08 de setembro 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Matando um usuário no significado do Unix 

AVISO: o site UGU não está dizendo para você matar os seus usuário. Se você resolver fazer isto, é por sua escolha e próprio risco. ( NOTA DO TRADUTOR: fazemos as palavras do UGU as nossas também )

Todos nós temos aquele usuário ... 

Para matar todos os processos ligados a um usuários em particular: 

# kill -9 `ps -aef|grep jondoe |awk '{ print $2 }'`

Se você quer ser considerado um bom SysAdmin, avise-o antes ... 

 

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Rodando no último domingo

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX[bb]
Dica Unix 2935 - 18 de fevereiro de 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Rodando no último domingo

Se você quer rodar um job sempre no último domingo de cada mês, você pode usar a seguinte sintaxe: 

18 * * * 0 [ `date "+%d"` -gt 24] && /path/to/script

explicand: no domingo às dezoito horas checamos se o dia do mês é maior que 24, aí sim o job é executado ( se 23 for especificado ele vai rodar nos dois últimos domingos do mês ). 

Nota: Note que no comando date são aspas invertidas e não aspas simples.

Nota do Tradutor:
Para evitar problemas em outros tipos de shell, pode ser usado o seguinte comando:

18 * * * 0 [ $(date "+%d") -gt 24] && /path/to/script

Pessoalmente, gosto mais deste tipo. 

Esta dica é generosamente suportada por: duncan.ferguson@egg.com

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Removendo arquivos com nomes estranhos

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
UNIX GURU UNIVERSE
DICA UNIX
Dica Unix 3003 - 27 de abril de 2009
http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Removendo arquivos com nomes estranhos

Se um arquivo contém um caracter especial no nome,  o Unix irá tentar interpretar este caracter no shell. E, renomear estes tipos de arquivos passa ser muito mais do que fazer um simples "mv" ...
Então, isto passa a ser feito usando o inodo do arquivo.

Por exemplo:

# ls -i "GSO (website)"
41734 GSO(website)
(o argumento "-i" irá mostrar o inodo do arquivo ) sendo que o inodo deste arquivo é  "41734"

1. com o inodo identificado, use o comando find para renomear o arquivo :

find . -inum 41734 -exec mv \{\} NewName \;

2. Faça um "ls" para conferir o arquivo foi renomeado corretamente.

 

Esta dica é generosamente suportada por: arimaldo@earthlink.net 

----------------------------------------

Para assinar: http://www.ugu.com/sui/ugu/show?tip.subscribe
Para sair: http://www.ugu.com/sui/ugu/show?tip.unsubscribe
Para enviar uma dica: http://www.ugu.com/sui/ugu/show?tip.today
======================================
DECLARAÇÃO: TODAS AS DICAS DE UNIX SÃO PROPIEDADE DA UNIX GURU UNIVERSE E NÃO SÃO PARA SER VENDIDAS, IMPRESSAS OU USADAS SEM O CONSENTIMENTO POR ESCRITO DA UNIX GURU UNIVERSE.
TODAS AS DICAS SÃO "USADAS POR SEU PROPRIO RISCO". UGU ADVERTE PARA
TESTAR TODAS AS DICAS EM UM AMBIENTE QUE NÃO ESTEJA EM PRODUÇÃO. Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2008
======================================

Páginas