sexta-feira, 14 de junho de 2013

A filosofia do Pinguim (Post bonus)

Pessoal, é com muita honra que eu vou postar aqui um artigo feito pelo meu grande amigo e ex-parceiro de trabalho Ricardo dos Santos Rocha.

Ele foi a primeira pessoa que eu vi trabalhar com Linux em modo texto, ele quem me incentivou a começar a usar o sistema operacional e ele quem me ensinou a maioria dos comandos básicos do linux, foi nessa época (1 ano atrás) que eu comecei a me interessar profundamente por este S.O.

Sem mais delongas, o artigo dele não trata a parte técnica mas sim a filosofia. É totalmente incentivador e escrito com as próprias e sábias palavras dele:

"Há 22 anos, mais precisamente em 05/10/1991, Linus Torvalds, até então estudante de Ciência da Computação na Universidade de Helsinki na Finlândia postava em um newsgroup um convite a todos aqueles que desejassem contribuir no desenvolvimento de um sistema operacional gratuito parecido com o Minix, sistema operacional inspirado no Unix da AT&T, porém, que rodava em computadores pessoais AT-386. Torvalds postou:

Você sente falta dos dias do Minix/1.1 quando homens eram homens e escreviam seus próprios drivers? Você está sem nenhum projeto legal e está ansioso para mexer num sistema operacional que você possa modificar para atender às suas necessidades? Você está achando chato quando tudo funciona no minix? Não quer ficar mais a noite toda tentando arrumar um programa legal? Então esta mensagem pode ser para você.

Estava lançado o desafio, o Linux em sua versão 0.2 ainda dependia do Minix para compilar e configurar, no entanto, Linus já estava trabalhando na independência do Pinguim.

Desde então, o Linux incorporou vários programas que pertenciam ao projeto GNU liderado por Richard Stallman, o próprio código fonte do Linux passou a utilizar a licença GNU GPL, ou simplesmente GPL (General Public License), eis o motivo pelo qual grande parte da comunidade Linux insiste em chamar o Linux de GNU/Linux, para mostrar que o não só o código fonte do Linux, mas como boa parte de seus programas estão sob a licença GPL. Basicamente, a GPL diz que todo programa que utilizar este modelo de licença deve obrigatoriamente ser distribuído junto com seu código fonte, ou de algum modo disponibilizá-lo a quem obtê-lo. O Linux é grátis? Não necessariamente. Eu posso vende-lo por um valor simbólico, apenas para cobrir os gastos com mídia e impressão, porém tenho a obrigação em distribuir o seu código fonte junto para que as pessoas, ou empresas tenham a liberdade em adaptá-lo às suas necessidades.

Seguindo essa filosofia open source, podemos ver nos dias de hoje o Linux rodando em centenas de plataformas de hardware diferentes,  como Relógios, Celulares, Robôs... Talvez não fosse por esta liberdade não teríamos acesso a um sistema robusto, confiável e estável, como o Linux. Há 22 anos, o Linux vem sendo aperfeiçoado e testado por centenas de milhares de programadores e hackers experientes em todo o mundo, o que faz do Linux a plataforma ideal para empresas que buscam segurança em operações de missão crítica, como é o caso da NASA por exemplo.

Está em dúvida se o Linux seria bom pra você?

Imagine um sistema onde você não precise ficar formatando o computador a cada 4 ou 5 meses, que seja estável, seguro e livre de vírus. Parece ficção? Não! Chama-se Linux!"


Ricardo dos Santos Rocha
Gerente de Tecnologia e Coach na É PRA JÁ – Soluções em Tecnologia
Atualmente trabalha no desenvolvimento de novas parcerias tecnológicas, no treinamento e qualificação de sua equipe de TI e no suporte aos demais departamentos da empresa.
É estudante do curso de Ciência da Computação e fissurado por tecnologia e informação.
Contato: deltinix@hotmail.com
Website: www.epraja1.com.br

Agendamendo de taferas e bash script (Utilizando backup de exemplo)

Olá! Hoje vou mostrar e explicar para vocês um pouco sobre agendamento de tarefas no linux utilizando o crontab.

Esta semana na empresa onde eu trabalho fiquei focado no nosso servidor Nagios (Monitoramento de rede, hosts, serviços e etc). Incluí hosts, criei novos templates, configurei mais serviços de monitoramento e fiz mais algumas alterações. Após feito todas essas mudanças ficou aquele medo de algum dia perder todos os arquivos de configuração... Qual a solução para acabar com esse risco? Backup, óbvio. Desenvolvi um bash script da seguinte forma: Toda vez que rodarem esse script ele vai compactar todos os arquivos do diretório /etc/nagios3 (Diretório onde fica os arquivos de configuração do Nagios) e vai salvar no diretório de backup que eu defini no script, o nome deste arquivo altera conforme data e hora. Ex: backup-2013-06-14-17.29.tar.gz) Backup executado no dia 14/06/2013 ás 17h29.

Parar criar um bash script no linux, você cria um arquivo através de um editor de texto, por exemplo, o vim.

vim backup.sh

Será aberto em tela um arquivo em branco com o nome de backup.sh (É necessário a extensão .sh para o linux compreender que se trata de um bash script). Este arquivo deverá começar com um comentário especial:

#!/bin/bash

Depois dessa linha você pode usufruir da sua imaginação, divirta-se. Crie variáveis, loops, casos, deixe as linhas comentadas utilizando "#" antes do comentário e etc.

Vou colar aqui o script que eu desenvolvi para realizar o backup conforme eu disse no segundo paragrafo desse post:

 #!/bin/bash
#Realizando backup do diretorio: /etc/nagios3/
    DATA=`date +%Y-%m-%d-%H.%M`
    cd /home/daniel/autobackup
    tar -cvzf backup-"$DATA".tar.gz /etc/nagios3/

#Este script esta sendo executado em uma rotina no arquivo Crontab.
#Zipa os arquivos do Nagios no diretorio /home/daniel/autobackup alterando automaticamente o nome de acordo com a data e hora.

Como vocês podem ver a variável "DATA" foi onde eu defini que será trocado o nome do arquivo de acordo com a data e hora de execução. As linhas que começam com "#" são linhas comentadas (não interferem nas funções do script) e o comando "tar -cvzf" é o que compacta (zipa) os arquivos definidos, neste caso: /etc/nagios3.

Bom, este script resolveu o meu problema, não preciso mais compactar os arquivos, alterar o nome do arquivo, salvar no diretório de backup tudo na unha, já esta automatizado e padronizado dentro do script.

Daniel, você tem que acessar o servidor e rodar o script manualmente, certo? Errado! Vamos automatizar ainda mais esse processo de backup, utilizaremos então um agendador de tarefas para rodar esse script em determinado dia, mês, dia da semana, hora e etc.

Utilizaremos o crontab para agendar a execução deste script... O crontab é um programa do linux onde vc edita um arquivo especificando QUANDO e QUAL tarefa será executada pelo cron (Executa os comandos agendados). Segue os paramêtros do arquivo crontab:



-l usuário -- lista as tarefas agendadas para o usuário
-e usuário -- edita o agendador
-r usuário -- apaga o arquivo do usuário
-c diretório -- especifica um diretório para o Crontab
 
No terminal vamos executar "crontab -e" para abrir o arquivo do crontab e assim definir o agendamento.

Dentro do arquivo terá uma linha comentada da seguinte forma:

mm hh dd MM ss script
 
Esses é o modelo (sintaxe) de como você irá definir seu agendamento. Segue a sintaxe retirada do Wikipedia:

mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-6)
script = comando a ser executado.
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado. 
       No caso de dia da semana funciona também as três primeiras letras 
       (em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se 
       importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo
       é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a
       lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será
       considerado comentário e não será interpretado pelo cron
 
 Bom, como vocês podem ver é bem simples, você passa a data e hora e o que será executado. No caso do meu backup o meu agendamento ficou da seguinte forma:

00 23 15 * * /home/daniel/autobackup/backup.sh
 
 
Então todo dia 15 ás 23:00hrs será executado o script "backup.sh" que esta salvo no diretório "/home/daniel/autobackup/".

Bem pessoal, espero que vocês tenham gostado de mais um dos meus posts. São coisas simples assim que podem te livrar de uma extrema dor de cabeça como por exemplo deletar os arquivos de configuração de um servidor e etc. É melhor perder algum tempo elaborando uma maneira de fazer backup do que no futuro perder toda sua informação e/ou configuração. No post de hoje matamos dois coelhos em uma cajadada só: a importancia do backup e a utilização do crontab.

É isso. Qualquer dúvida, sugestão, critica e etc envie para o meu e-mail: daniel.antoniassi@live.com

Até a próxima!