Categoria: Linux(Shell);

Local destinado às dicas de aplicativos em linha de comando, customizações bash, configurações de sistema, e afins.

Simples interpretador de comandos feito em shellscript

Em determinados tipos de aplicativo shellscript, é necessário utilizar recursos como MENUs, PARÂMETROS, ou até mesmo interpretador de comandos interativo. Principalmente quando falamos de tarefas que não podem ser automatizadas, por exemplo: um monitoramento de replicação de banco de dados que eventualmente precisa da interação de um colaborador na função de “operador/monitor”.

Neste POST, apresenta-se como fazer um interpretador de comandos internos para um script:

Segue código de 26 linhas:

Read More

Como consultar se uma porta está aberta ou fechada remotamente

Existem diversas formas de consultar se uma porta está aberta ou fechada em um determinado host da rede (remotamente).
Uns preferem abrir uma conexão normal pelo programa padrão (um navegador se a porta for 80, um cliente de e-mail se a porta for 143, 25 ou 110), outros preferem abrir um “telnet host porta” e há ainda aqueles que usam programas exploradores de rede e port scanners como o “nmap“.

Neste post, vou explicar como usar o “netcat” (binario nc) para explorar determinada porta em um host de sua rede. Ainda teremos um exemplo de combinação de códigos em shellscript para informar a você se a porta está aberta ou fechada.

Para entender o uso do netcat para este fim, imaginemos que em minha máquina local tenho o serviço OpenSSH aguardando conexões na porta 22, mas não tenho nenhum serviço aguardando conexões na porta 23. Ou seja:

Read More

Criando arquivos temporários durante a execução do seu programa

Em determinados momentos da programação, pode ser necessário criar algum arquivo temporário durante a execução do seu shellscript. Este arquivo pode ser para controle de execução, para processamento interno ou até mesmo para trocar informações com outros programas. Logicamente que, como o acesso à disco é consideravelmente LENTO em comparação com acesso à memória RAM, o recurso de criação de um arquivo temporário em disco deve ser utilizado sempre que não houver alternativa possível utilizando memória (variáveis, vetores, etc).

Read More

Listando arquivos sem o caminho completo com auxílio do laço de repetição FOR (bash)

Programadores shellscript e administradores de servidores Linux em geral, sentem dificuldades para solucionar pequenos problemas que as vezes parecem ser “tão fácil”, mas que na hora de colocar a “mão na massa” pra resolver, não é tão facil assim.

Postarei aqui alguns dos cenários que me deparo, no intuito de auxiliar o pessoal que pesquisa e se interessa pelo assunto.

Read More

Configurando o Layout de teclado no console Linux – *RED-HAT

Quem nunca se deparou com um layout US e um teclado ABNT2 antes…?  Poise, por varias vezes me deparei com esta situação, sempre me virei por conhecer bem o layout US, porém quando a necessidade de correção foi mais forte tive que me virar.. hehehe

Para plataformas RED HAT que necessitam realizar a troca do layout de teclado no modo texto do Linux (console tty, CRTL+ALt+F2, F3, etc…), e que de quebra não possua a ferramenta system-config-keyboard-tui ou system-config-keyboard pode alterar a configuração através do arquivo /etc/sysconfig/keyboard. Neste arquivo deve conter uma linha KAYTABLE=”LAYOUT DESEJADO”.

Seguem exemplos dos dois mais usados  =)

Read More

Tunel criptografado SSH para executar comandos em máquinas remotas com pipes

Aproveitando o post do Franklin: “SSH: confiança entre servidores” e também o post anterior “Usando PIPEs no Linux: mknod p, mkfifo“, vamos compartilhar com a comunidade mais uma solução interessante usando os PIPES.. mas dessa vez não será preciso criar um FIFO com mknod ou mkfifo…

Dessa vez, vamos criar uma estrutura para poder digitar um comando uma vez só em um linux, e ele será replicado para várias máquinas linux, simultaneamente…

Antes de tudo, a máquina central onde você executará o comando, deve ter confiança para executar comandos SSH em outras máquinas sem a solicitação de senha (veja o post SSH: confiança entre servidores).

Então temos que definir algumas informações e os arquivos, em forma de variável para facilitar a utilização:

Read More

Usando PIPEs no Linux: mknod p, mkfifo

Como é o primeiro POST de 2009, começo desejando a todos um ano de muito sucesso!

Hoje vou exemplificar a utilização de um tipo de arquivo chamado PIPE para compactação de arquivos.

Pipe significa cano, tubo, duto, dependendo do contexto. Nesse caso podemos encará-lo como um inode de entrada e saída (FIFO – first in first out/primeiro que entra, é o primeiro que sai).

Nada mais é que um arquivo em disco programado pra receber algo de STDIN e jogar esse algo em STDOUT (input and output/entrada e saida).

Logo, podemos interceptar o funcionamento desse pipe e pegar tudo que ele jogar em STDOUT, compactar com gzip e jogar a saída para um arquivo com extensão .gz…

Mãos à obra:

Read More

“cp -f” não funciona? Eliminando alias padrões em distros RedHat like’s

Em distribuições LINUX RedHat e suas derivadas (Centos, Fedora, e possivelmente outras) utilizam por padrão uma listagem de aliases, que substituem o comando cp, rm e mv padrões do Linux. Trata-se de um “nível de segurança” que considero abusivo em distros enterprise como o RedHat. Estes aliases passam por padrão o parâmetro -i aos ditos comandos que “podem comprometer” a integridade do sistema, se não utilizados corretamente.

Mas porque um administrador que DEVE saber que a opção -f dos ditos comandos é para FORÇAR a mudança precisaria desta “MÃOZINHA” da gigante RedHat? Imaginem o trabalho que da ter de reestruturar uma diretório com 100 arquivos sendo que 50 deles já existem, e ter de responder y/s para cara sobrescrita de arquivo… Seria chato ter que burlar isso né?

Pois bem, para mudar isso é simples, depois de tanto tempo sendo incomodado por este padrão:

Os aliases estão armazenados no arquivo de configuração .bashrc do diretório ~root, e possui o seguinte conteúdo:

Read More

SCREEN para consolidar sessões SSH

Saudações ao leitor,

Inicialmente meus parabéns ao Franklin pela iniciativa de criar o CIALINUX, iniciar os conteúdos e me convidar para contribuir.

Me chamo Hudson Murilo dos Santos e espero contribuir para a formação NERD de cada leitor interessado nos mesmos assunto que a gente do CIALINUX. A idéia é justamente o que o Franklin comentou no POST inicial… prover documentação interessante em idioma português, resumida e acima de tudo: prática e exemplificada.

Então vamos lá:

Read More