Linux – Crontab

O utilitário Cron é um agendador de tarefas em Unix-like para executar tarefas repetidas vezes, baseado em (minutos, horas, dias, semanas, meses ou ano), então é com ele que você pode configurar um script para por exemplo todos os dias a meia-noite realizar backup do banco de dados, para tarefas mais simples ou que será executada uma unica vez é interessante usar o comando at.

Um outro comando que se vê no Linux é o anacron, alinhado ao cron mas que difere onde consegue executar tarefas atrasadas, caso o servidor/desktop esteja desligado, ao ligar consegue executar tarefas que não foram neste período, mas não será abordado neste post.

O nome Cron não tem sua definição de nome muito clara, em alguns sites você encontra a referencia da palavra grega chronos(tempo) em outros “Command Run On Notice” ou mesmo “Commands Run Over Night”.

Vamos então conhecer a sua estrutura, seus diretórios e como se criar rotinas agendadas para executar as tais tarefas, além de poder bloquear e liberar usuários e algumas expressões especiais para usar em rotinas.

Continue reading

Linux – Estudando e explorando o 2>&1

Uma recurso muito utilizado em scripts Linux para Desktop, Servidores e até em Sistemas Embarcados com Linux, porém muitos não sabem o significado ou o correto uso destas opções, e irei abordar em detalhes neste artigo.

É muito comum em ambiente Linux encontrarmos o uso das seguintes expressões:

2>&1
2>
1>
&>
2>&1 >/dev/null
>/dev/null 2>&1

Quer ver um exemplo execute o comando abaixo:

bueno@vm1 ~ $ sudo grep -rin "2>&1" /etc/init.d/*

E você verá quantos scripts em seu /etc/init.d possuem o uso do 2>&1.

Vamos primeiramente entender o que são os números da expressão 2>&1.

Continue reading

Python – Acessando bibliotecas do Linux com ctypes

A linguagem Python possui muitas bibliotecas, e facilmente conseguimos instalar qualquer uma da internet ou do próprio www.pypi.python.org, que possuirão ‘N’ recursos para protocolos, comunicações, banco de dados, web, mineração de dados, matemática, Gui e entre muitas outras funções.

Vamos conhecer agora um recurso  sensacional para usar no Python, de importar bibliotecas compartilhadas do sistema operacional, no Linux por exemplo as famosas lib*.so e poder usar as funções definidas nas mesmas.

Continue reading

Linux – O poderoso udev

Neste post vamos falar sobre o famoso udev, poderosíssimo gerenciador dinâmico de dispositivos do Linux a partir do Kernel 2.6, tendo como antecessores a combinação DEVFS e hotplug.

Um pouco de historia agora, um device no Linux nada mais é que um pseudo-arquivo que possui a combinação de dois endereços, o major number e o minor number, referentes a indicar a categoria do dispositivo  e a identificação do dispositivo conectado, antes do udev o DEVFS era quem criava os dispositivos no /dev e tinha todos a pronta entrega independente de atribuir poucos para uso, paralelamente trabalhava-se com o hotplug, este já entrava em cena quando novos dispositivos eram conectados, principalmente os USB, então caso necessitasse subir algum modulo do kernel, setar permissões, executar rotinas isso era com o hotplug e suas toneladas de scripts.

Porém conforme aumentava-se o numero de devices, e o numero de dispositivos no servidor o número de scripts do hotplug também, e sucessivamente percebia-se isso no tempo de boot do sistema.

Continue reading

Linux – Dominando o comando grep

O Linux possui muitos comandos nativos que são verdadeiros canivete-suiço para SysAdmins e criação de poderosos scripts.

Iniciei uma serie de posts sobre Shell Script, e agora irei começar a utilizar diversos comandos do Linux para tornar e dar vida a grandes funções com estes scripts, para isso, começarei a abordar separadamente os mais conhecidos e usados.

Neste post vou falar sobre o grep, muitos não sabem mas o significado do nome é (Globally Search a Regular Expression and Print), o nome já diz tudo o que esse comando faz, e deixando mais claro a ideia é procurar texto em uma string ou dentro de arquivos e mostrar linhas, ocorrências, usar combinações para pesquisar e o resultado da pesquisa ser mostrado na tela.

Continue reading

Linux – Conhecendo e usando tcpdump e wireshark

Vamos nos divertir bastante neste artigo, porque veremos como analisar pacotes da rede, não só no Linux, mas conseguiremos facilmente ver dados em redes com servidores Linux, terminais Linux, placas embarcadas com Linux, microcontroladores e até vindo ou indo para computadores ou dispositivos com Windows e afins que usam diversos protocolos, como UDP e TCP por exemplo.

Aqui vamos usar uma ferramenta poderosa chamada TCPdump e ver como é fácil entender o modelo OSI e os pacotes da rede, então, vamos lá.

Continue reading

Linux – Reiniciar Linux com SysRq

Para quem não conhece o SysRq(System Request) é uma tecla que você encontra na maioria dos teclados próximo ao Insert e a tecla Home, muitas vezes dividindo espaço com a tecla PrintScreen.

Toda historia e o porque você pode ver aqui no Wikipedia.

O que quero comentar é o uso que essa tecla permite ou permitia pelo menos nos dias de hoje, para algumas ações no console do Linux, SysRq com Alt e um caractere e uma função é executada.

Por exemplo Alt + SysRq + s irá dar um sync em todos file systems montados.

Uma relação dos caracteres, funções e mais informações pode ser visto neste link.

Porém, conseguimos usar este recurso do SysRq escrevendo direto no /proc referente a ele, para isso e para garantir exito devemos habilitar o sysrq, para isso executaremos o seguinte comando.

Continue reading

Linux – Usando o forcefsck

O Linux possui um utilitário muito usado por muitos SysAdmin’s, principalmente nos momentos de incidentes.

O comando fsck, uma excelente ferramenta criada por Theodore Ts’o, que o foco é checar e reparar sistemas de arquivos “sujos” no Linux.

Quando o disco rígido começa a dar problemas, ou aquele sistema embarcado que usa um SD-Card ou microSD começa a inutilizar os blocos da flash por não usar algumas técnicas como de poupar IO’s nela, ou aquele servidor da empresa que sofreu 3 reboots consecutivos por falha na energia e do no-break.

Bom, em todos esses casos o fsck será útil. Porém, existem casos em que o Linux esta com o sistema de arquivos “sujo” ou já danificado e continua em operação (é Linux né :)), mas você sabe que o sistema de arquivos ou o disco rígido/memoria flash esta com problemas porque vê algo assim nos logs.

Continue reading

Linux – Pausando e reiniciando um download com wget

Este post é aquela famosa dica de poucas linhas mas que pode ser uma mão na roda em certas horas. E foi o que aconteceu comigo, estava fazendo um download da image do Raspbian (Distribuição Linux da Raspberry PI baseada no Debian) e o download estava em 85%, e eu tinha que sair, porém, o problema é que teria que levar o notebook junto.

Problema não? E ae que lembrei e pensei, hum, porque não enviar um sinal de SIGSTOP e depois quando quisesse voltar enviava um sinal de SIGCONT?

E foi isso que fiz, vamos ver o caso e como realizar o envio deste sinal para o processo. Como exemplo vou começar um download da image Raspbian do Raspberry PI.

Continue reading