quarta-feira, 11 de junho de 2014

Como exibir o número de linhas no VI e algumas dicas mais

Para exibir o número de linhas basta usar o comando:

: set number
Ou
: set nu

Para desabilitar basta acrescentar uma "!" ao comando:

: set nu!

Para abrir o texto em uma linha específica (10):
vi +10 /etc/passwd

Para abrir o vi na linha da primeira ocorrência de um termo (nologin):
vi +/nologin /etc/passwd

Para abrir o vi na linha da primeira ocorrência de um termo (0.0.0.0), usando caracteres de escape (\):
vi +/\(0.0.0.0\) /etc/httpd/conf/httpd.conf

Fonte:
FAQ Cyberciti


O que acontece quando você vive no exterior

O texto a seguir é uma tradução de “What happens when you live abroad“, da Chelsea Fagan.


Uma característica muito comum de pessoas que vivem no exterior é encontrá-los amontoados em bares e restaurantes, falando não apenas sobre a sua terra natal, mas sobre a experiência de sair. E por incrível que pareça, esses grupos de expatriados não são necessariamente todos dos mesmos países de origem, muitas vezes, a mera experiência de mudança de local e cultura é suficiente para conectá-los e construir as bases de uma amizade. Eu conhecia uma quantidade razoável de expatriados – de diferentes períodos de estadia – nos Estados Unidos, e é reconfortante ver que aqui na Europa, os bares de “estrangeiros” são tão predominantes e preenchidos com a mesma vibração quente e nostálgica.

Mas uma coisa que, sem dúvida, existe entre todos nós, algo que permanece não-dito em todos os nossos encontros, é o medo. Há um medo palpável em viver em um novo país, e embora seja mais agudo nos primeiros meses, até mesmo anos, da sua estadia, nunca evapora completamente ao longo do tempo. Ele simplesmente muda. A ansiedade que já foi concentrada em como você vai fazer novos amigos, se ajustar e dominar as nuances da linguagem tornou-se a questão repetida “O que eu estou perdendo?”. Conforme você se estabelece em sua nova vida e novo país, conforme o tempo passa e se torna menos uma questão de há quanto tempo você está aqui e mais uma de há quanto tempo você se foi, você percebe que a vida em casa seguiu sem você. As pessoas cresceram, mudaram, se casaram, se tornaram pessoas completamente diferentes – e você também.

É difícil negar que o ato de viver em outro país, em outro idioma, muda você fundamentalmente. Diferentes partes da sua personalidade se destacam, e você assume qualidades, maneirismos e opiniões que definem as novas pessoas ao seu redor. E não há nada de errado nisso, muitas vezes é parte da razão pela qual você partiu, em primeiro lugar. Você queria evoluir, mudar alguma coisa, para colocar-se em uma desconfortável situação nova que iria forçá-lo a entrar numa nova fase de sua vida.

Então, muitos de nós, quando deixamos nossos países de origem, queremos escapar de nós mesmos. Construímos enormes redes de pessoas, bares e cafés, de argumentos e exes e os mesmos cinco lugares de novo e de novo, dos quais sentimos que não podemos nos libertar. Há muitas pontes que foram destruídas, ou amor que se tornou azedo e feio, ou restaurantes em que você comeu tudo no menu pelo menos dez vezes – a única maneira de escapar e tornar a sua ficha limpa é a ir a algum lugar onde ninguém saiba quem você foi, e nem vá perguntar. E, embora seja extremamente refrescante e estimulante sentir que você pode ser quem você quiser ser e vir sem a bagagem do seu passado, você percebe o quanto de “você ” foi mais baseado em localização geográfica do que qualquer outra coisa.

Andar pelas ruas sozinho e jantar em mesas para um – talvez com um livro, talvez não – em que você fica sozinho por horas, dias a fio com nada além de seus próprios pensamentos. Você começa a falar sozinho, perguntando coisas a si mesmo e respondendo-as, e fazendo as atividades do dia com uma lentidão e uma apreciação que você nunca antes sequer tentou. Até ir apenas ao supermercado – estando em um empolgante lugar novo, sozinho, em um novo idioma – é uma atividade emocionante. E ter que começar do zero e reconstruir tudo, ter que reaprender a viver e realizar atividades diárias como uma criança, fundamentalmente lhe altera. Sim, o país e seu povo terão o seu próprio efeito sobre quem você é e o que você pensa, mas poucas coisas são mais profundas do que simplesmente começar de novo com o básico e confiar em si mesmo para construir uma vida de novo. Eu ainda tenho que encontrar uma pessoa que eu não ache que se acalmou com a experiência. Há uma certa quantidade de conforto e confiança que você ganha consigo mesmo quando você vai para este lugar novo e começa tudo de novo, e uma noção de que – aconteça o que acontecer no resto da sua vida - você foi capaz de dar esse passo e pousar suavemente pelo menos uma vez.

Mas existem os medos. E sim, a vida continuou sem você. E quanto mais tempo você ficar em seu novo lar, mais profundas essas mudanças se tornarão. Feriados, aniversários, casamentos – cada evento que você perde de repente se torna uma marcação em uma resma de papel sem fim. Um dia, você simplesmente olha para trás e percebe que tanta coisa aconteceu na sua ausência, que tanta coisa mudou. Você acha cada vez mais difícil iniciar conversas com as pessoas que costumavam ser alguns dos seus melhores amigos, e piadas internas se tornam cada vez mais estranhas – você se tornou um estranho. Há aqueles que ficam tanto tempo fora que nunca podem voltar. Todos nós conhecemos o expatriado que está em seu novo lar há 30 anos e que parece ter quase substituído os anos perdidos longe de sua terra natal com total imersão apaixonada em seu novo país. Sim, tecnicamente eles são imigrantes. Tecnicamente a sua certidão de nascimento iria colocá-los em uma parte diferente do mundo. Mas é inegável que qualquer que seja vida que eles deixaram em casa, eles nunca poderiam juntar todos os pedaços. Essa pessoa antiga se foi, e você percebe que a cada dia você se aproxima um pouquinho mais de você mesmo se tornar essa pessoa – mesmo se você não quiser.

Então você olha para sua vida, e os dois países que a seguram, e percebe que agora você é duas pessoas distintas. Por mais que seus países representem e preencham diferentes partes de você e o que você gosta na vida, por mais que você tenha formado laços inquebráveis com pessoas que você ama em ambos os lugares, por mais que você se sinta verdadeiramente em casa em qualquer um, você está dividido em dois. Para o resto de sua vida, ou pelo menos você se sente assim, você vai passar seu tempo em um incômodo anseio pelo outro, e esperar até que você possa voltar por pelo menos algumas semanas e mergulhar de volta à pessoa que você era lá. Leva-se muito tempo para conquistar uma nova vida para si mesmo em algum lugar novo, e isso não pode morrer, simplesmente porque você se moveu ao longo de alguns fusos horários. As pessoas que lhe acolheram no país delas e tornaram-se sua nova família, eles não vão significar menos para você quando você está longe.

Quando você vive no exterior, você percebe que, não importa onde você esteja, você sempre será um expatriado. Sempre haverá uma parte de você que está longe de sua casa e jaz adormecida até que possa respirar e viver com todas as cores de volta ao país onde ela pertence. Viver em um lugar novo é algo belo e emocionante, e pode lhe mostrar que você pode ser quem você quiser – em seus próprios termos. Pode dar-lhe o dom da liberdade, de novos começos, de curiosidade e empolgação. Mas começar de novo, entrar naquele avião, não vem sem um preço. Você não pode estar em dois lugares ao mesmo tempo e, a partir de agora, você sempre ficará acordado em certas noites e pensará em todas as coisas que você está perdendo em casa.

Referência:
Original em backing me up.

terça-feira, 10 de junho de 2014

Conhecendo um pouco mais sobre o comando man

Muitas pessoas desconhecem o uso do comando man. Por mais simples que parece, o seu uso pode salvar o usuário em uma situação que não existe uma conexão ativa com a internet.
Trata-se do manual do sistema operacional, e com ele pode-se encontrar todos ou quase todos os comandos existes no sistema. Por padrão as páginas do manual Linux encontram-se no diretório /usr/share/man. Para facilitar seu uso e entendimento, o manual é dividido em seções que vão de 1 a 9. São elas:
  1. Programas executáveis ou comandos do Shell.
  2. Chamadas do sistema – rotinas do kernel (mais utilizado por SysAdmin’s).
  3. Funções de bibliotecas – documentação de bibliotecas do sistema (bastante utilizado por desenvolvedores).
  4. Arquivos especiais – arquivos usados dentro do diretório /dev.
  5. Formato e convenções de arquivos – contém o formato de alguns arquivos como o /etc/passwd.
  6. Jogos – dicas e comandos de jogos existentes no sistema.
  7. Miscelânea de pacotes – documentação relacionada a pacotes, protocolos etc.
  8. Comandos administrativos – comandos utilizados pelo root.
  9. Rotinas do Kernel.

Alguns parâmetros do comando man.
Uso man [opção] comando/arquivo/expressão
  • sem parâmetros – abre a página do manual relacionada ao comando indicado.
Exemplo: Abre a página do manual relacionada ao comando ls.
$ man ls

-k – mostra referências no manual de acordo com a expressão usada no argumento. Obtém-se um resultado semelhante utilizandoo comando whatis.
$ man -k ip
ip (7) - Implementação do protocolo IPv4 em Linux
ip (8) - show / manipulate routing, devices, policy routing and tunnels

-f – mostra descrições do comando em suas respectivas seções do manual. Obtém-se um resultado semelhante utilizando o comando apropos.
$ man -f hostname
freehostent (3) - get network hostnames and addresses
gethostname (2) - get/set hostname
getipnodebyaddr (3) - get network hostnames and addresses
getipnodebyname (3) - get network hostnames and addresses
hostname (1) - show or set the systems host name
hostname (7) - hostname resolution description
hosts (5) - static table lookup for hostnames
logresolve (1) - Resolve IP-addresses to hostnames in Apache log files
sethostname (2) - get/set hostname
ssh-argv0 (1) - replaces the old ssh command-name as hostname handling
Sys::Hostname::Long (3pm) - Try every conceivable way to get full hostname

É possível deixar as páginas do manual Linux em português usando o comando:
# apt-get install manpages-pt
*Comando válido apenas para distribuições derivadas do Debian.
As vezes é necessário atualizar as páginas do manual, para esse fim, usa-se o comando catman. Seu tempo de execução pode demorar alguns minutos dependendo do hardware utilizado.

Caso ainda haja dúvidas quanto ao uso do man, existe também o manual do próprio manual. Estranho não é mesmo? Mas no GNU/Linux existe um manual de como usar o manual, nele você encontrará todas essas informações de forma detalhada.
$ man man

Além do man, existem outras formas de obter-se ajuda dentro do próprio Linux. O diretório /usr/share/doc, contém grande parte da documentação dos principais pacotes instalados no sistema. Pode-se acessá-los a partir do comando info.

$ info mkdir
File: coreutils.info, Node: mkdir invocation, Next: mkfifo invocation, Prev: ln invocation, Up: Special file types
12.3 `mkdir': Make directories
==============================
`mkdir' creates directories with the specified names. Synopsis:
mkdir [OPTION]... NAME...
.
.
.

E por último mas não menos importante o parâmetro –help. É usado como consulta rápida à um determinado comando em que há dúvidas a respeito de sua sintaxe.

$ locate --help
Uso: locate [OPÇÃO]... [PADRÃO]...
Busca por entradas na base de dados do mlocate.
-b, --basename corresponde somente ao nome base no caminho
-c, --count somente mostra o número de correspondências localizadas
-d, --database DBPATH usar DBPATH ao invés da base de dados padrão (que é /var/lib/mlocate/mlocate.db)
-e, --existing mostrar somente as entradas de arquivos existentes
-L, --follow seguir ligação simbólica quando verificar a existência arquivos (padrão)
-h, --help mostra essa ajuda
-i, --ignore-case ignora maiúsculas e minúsculas na pesquisa
-l, --limit, -n LIMIT limita a saída (ou contagem) ao número indicado
-m, --mmap ignorado, para compatibilidade regressiva
-P, --nofollow, -H não seguir ligações simbólicas quando verificar a existência de arquivos
-0, --null separar as entradas com NUL na saída
-S, --statistics não pesquisar pelas entradas, mostrar as estatísticas sobre as base de dados utilizada
-q, --quiet reportar mensagens de erro sobre leitura nas base de dados
-r, --regexp REGEXP pesquisar por regex básica ao invés de padrões
--regex padrões são regexps estendidas
-s, --stdio ignorado, para compatibilidade regressiva
-V, --version mostra informações da versão
-w, --wholename procura por todo o caminho do nome (padrão)

Isso não é tudo, mas acredito que pode salvar alguns aprendizes como eu.

Referência:
Todo o crédito ao Tales A. Mendonça, artigo original aqui.

Vim: Comentando várias linhas

Existem algumas formas de comentar múltiplas linhas no Vim, seguem 2 delas:

1) Selecionando as linhas:
- CTRL+V para ir para o VISUAL MODE e selecione as linhas que você quer comentar;
- Digite : (dois pontos)
- Digite s/^/#/
- ENTER


2) Informando as linhas:
- No console do Vim digite :X, Y s/^/#/
Onde X é a primeira e Y é a última linha que você quer comentar.



Referencia:
Todo o crédito à Thais Camilo, post original aqui.

Crontab: rodando um script a cada 15 segundos

Introdução:
A granularidade do crontab é de 1 minuto, mas usando a criatividade e um pouco de conhecimento em Linux é possível contornar isso.

Solução:
*  *  *  *  *  script/comando
*  *  *  *  *  sleep 15 && script/comando
*  *  *  *  *  sleep 30 && script/comando
*  *  *  *  *  sleep 45 && script/comando

Referência:
Todo o crédito da solução ao Rafael Biriba, clique para ir para o post original!

quinta-feira, 5 de junho de 2014

Monitoramento de OIDs Dinamicas com LLD


Introdução:
Ao monitorarmos equipamentos por SNMP, encontramos muitos dispositivos que possuem OIDs dinâmicas, ou seja, a informação está em um endereço que não é previsível, a mesma informação referente a dois itens do mesmo tipo, do mesmo equipamento, estão em endereços completamente diferentes, e você se pergunta: Mas é a mesma informação como isso pode acontecer? Vou dar alguns exemplos e você vai entender melhor. Nesse exemplo estou usando antenas wireless conectadas a um controlador.

O Problema:
Vamos analisar primeiro uma OID Simples, os SSIDs que divulgo nas antenas:
# snmpwalk -Oqn credenciais IP .1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108

.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.1 "SSID01"
.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.2 "SSID02"
.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.3 "SSID03"

Agora vamos analisar uma OID Dinâmica, o nome de cada antena:
# snmpwalk -Oqn credenciais IP .1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44

.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.93.147.0.46.0 Antena01
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.93.147.0.205.240 Antena02
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.230.204.42.248.32 Antena03
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.230.204.43.25.0 Antena04

Observando as partes em vermelho, fica fácil entender o problema, é a mesma informação do mesmo equipamento, as antenas são equipamentos individuais, mas como estou lendo o dado do controlador, são o mesmo tipo de objeto, o objeto que representa o nome da antena que está sendo gerenciada, mas em endereços completamente diferentes.

O recurso de LLD
Todos nós estamos acostumados a usar o LLD para automatizar a descoberta de itens do primeiro caso, OID Simples, mas e as OIDs dinâmicas?

Depois de muito procurar no fórum, pesquisar na web, achei alguns scripts para resolver o problema, mas não estava contente, eu queria resolver o problema com os recursos nativos do Zabbix, o que parecia impossível. Então eu tive uma idéia louca: E se eu passar a parte igual da OID para o Zabbix e deixar ele achar o resto será que funciona? SIM FUNCIONA!!!

Criando as regras
Regra de Descoberta
Protótipo de Item
Resultado do LLD



Conclusão
O LLD se mostrou muito mais poderoso do que pensávamos e, inclusive muito mais poderoso do que está documentado.

Informação Adicional
Pelo que apurei esse recurso está usando índice composto, isto não funciona em versões anteriores do Zabbix, mas foi adicionado no 2.2. Deveria ter sido documento na parte índice dinâmico, mas provavelmente eles não tinham exemplos específicos de LLD.

Dica
Se você tiver uma ideia maluca teste, teste de novo e de novo!

Monitoring dynamic OIDs with LLD


Introduction:
When we are monitoring equipment’s via SNMP, we find many devices that have dynamics OIDs, ie, the information is in an address that is not predictable, the same information concerning two items of the same type, at the same equipment, are in completely different addresses, and you ask: But is the same information as why this can happen? I'll give you some examples and you will understand better. In this example I'm using wireless access point’s connected to a controller.

The Problem:
Let us first analyze a single OID, the SSIDs that I’ll divulge in the AP’s:
# snmpwalk -Oqn credentials IP .1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108

.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.1 "SSID01"
.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.2 "SSID02"
.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.108.3 "SSID03"

Now we will analyze a Dynamic OID, the name of AP:
# snmpwalk -Oqn credentials IP .1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44

.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.93.147.0.46.0 AP01
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.93.147.0.205.240 AP02
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.230.204.42.248.32 AP03
.1.3.6.1.4.1.25053.1.2.2.1.1.2.1.1.2.6.44.230.204.43.25.0 AP04

Note the red part, it is easy to understand the problem is the same information for the same equipment, the AP’s are individual equipment, but as I'm reading the data from the controller are the same type of object, the object that represents the name of the AP being managed, but in completely different addresses.

The LLD resource
We are all accustomed to using the LLD to automate the discovery of the first case of items, OID Simple, but and dynamic OIDs?
After much searching on the forum, search the web, I found some scripts to solve this problem, but was not happy, I wanted to solve the problem with the native capabilities of Zabbix, which seemed impossible. So I had a crazy idea: What if I inform the equal portion of the OID for Zabbix and let him find the rest will it work? YES IT WORKS!

Creating rules





Item Prototype
 





LLD Result





Conclusion

The LLD proved much more powerful than we thought and even more powerful than is documented.


Tip
If you have a crazy idea,  test it, test again and again!