segunda-feira, 12 de dezembro de 2011

Dica sobre o Crontab

crontab é um programa do Unix que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron, um programa que executa comandos agendados nos Sistemas Operacionais do tipo Unix(como o Linux ou o Minix, por exemplo). O cron se encarregará de verificar a hora e determinar se existe ou não algum programa a ser rodado. Caso exista ele o rodará na hora e data solicitada, neste post vamos explicar um pouco sobre isso.

 Vamos para a sintaxe Funciona assim:

mm hh dd MM ss script

 Onde:

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
 
 
 Alguns exemplos Abaixo:
 
 
 #cat /etc/crontab

Todo dia de hora em hora (hora cheia)
00 * * * * /bin/script 
 
De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-59)
  00-59/5 * * * * /bin/script 
 
Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
  15 10,12,16,18,22 * * * /bin/script< 
 
Nos primeiros cinco dias do mês às 19:25
  25 19 01-05 * * /bin/script 
 
De segunda a sexta ao meio-dia e a meia-noite
  00 00,12 * * 1-5 /bin/script 
 
Script rodar Segunda,Quarta,Sexta às 2 horas
   0 2 * * mon,wed,fri /bin/script 
 
Script para rodar Terça,Quinta às 3 horas
   0 3 * * tue,thu /bin/script 
 
Script para ser executado minuto a minuto
   */1 * * * * /bin/script

 
 
   Alguns Parâmetros


-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
 
 
 Há e também de uma olhada na manpage do crontab
 #man crontab

segunda-feira, 7 de novembro de 2011

Fórum Tchelinux.org - Edição Porto Alegre 2011

 

O Fórum Tchelinux.org - Edição Porto Alegre 2011, é um evento promovido por voluntários do Grupo de Usuários de Software Livre Tchelinux.org em parceria com a FTEC Porto Alegre, com a finalidade de divulgar Tecnologias Livres, como Softwares Livres (Free Software/ Open Source), Linguagens de Programação e Hardware, através de palestras e workshops, veiculadas para todos os interessados da área de Tecnologia da Informação.
O Tchelinux.org é um grupo formado por entusiastas voluntários que utilizam software livre em seu cotidiano. A iniciativa baseia-se no compartilhamento do conhecimento adquirido, visando deixar claro que tanto o software utilizado, quanto o conhecimento, são livres e podem ser usados por todos, sem barreiras.

 Acesse  , Participe
 http://tchelinux.org/site/doku.php?id=evento_poa_2011

quarta-feira, 26 de outubro de 2011

Dimensionando partição superior a 2TB

Bom, tive um problema com discos de 2TB em meu servidor. Eles estavam com RAID, bom e com o fdisk ele informava que tava um erro

Veja
# fdisk -l /dev/sda

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

WARNING: The size of this disk is 9.3 TB (9345848836096 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID
partition table format (GPT).

Disk /dev/sda: 9345.8 GB, 9345848836096 bytes
255 heads, 63 sectors/track, 1136234 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


Bom de Cara o fdisk  já me informa pra usar o GNU Parted pois o mesmo não tem suporte a GPT. e ai o que eu fiz foi:

#man parted


e ai as coisas ficaram claras e fiz exatamente assim


# parted /dev/sda

GNU Parted 1.8.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands. 
        (parted) mklabel gpt

Vamos definir a unidade padrão para TB

         (parted) unit TB

 
Vamos criar a partição com os mais de 2TB

         (parted) mkpart primary 0.00TB 9.35TB


 (parted) print
Disk /dev/sda: 9.35TB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start      End      Size & nbsp ;    File system  Name     Flags
1             0.00TB  9.35TB  9.35TB        ;    primary
   


Agora sim


        (parted) quit
Information: Don't forget to update /etc/fstab, if necessary.

Ok, vamos usar o mkfs para formatar:
# mkfs.ext3 /dev/sda1

mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1140850688 inodes, 2281701367 blocks
114085068 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
69632 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


Verificando como ficou:

# fdisk -l /dev/sda
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

WARNING: The size of this disk is 9.3 TB (9345848836096 bytes).
DOS partition table format can not be used on drives for volumes
larger than 2.2 TB (2199023255040 bytes). Use parted(1) and GUID
partition table format (GPT).

Disk /dev/sda: 9345.8 GB, 9345848836096 bytes
255 heads, 63 sectors/track, 1136234 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      267350  2147483647+  ee  EFI GPT


Note como ficou o meu /dev/sda1 no número de blocks.

Agora vamos montar o mesmo:

# mount /dev/sda1 /Backup



Bom agora tenho espaço para Backup de sobra .

quarta-feira, 19 de outubro de 2011

Agenda em Dialog

Uma agenda simples, que solicita nome e telefone em dialog
Na proxima versão esta sendo melhado , para Utilizar Banco MySQL

#!/bin/bash
#
#   Agenda Simples em Dialog
#   Autor: Daniel Lara Souza
#   Versao 0.1
while : ; do
 reposta=$(
    dialog --stdout               \
           --title     ' AGENDA  ' \
           --menu    'Escolha um opcao: ' \
           0 0 0            \
           1 'Adicionar Contato'   \
           2 'Listar Contatos'  \
           3 'Pesquisar Contatos ' \
           4 'Deletar Contatos'       \
           0 'Sair'      \
                   )        
   [ $? -ne 0 ] && break
   
   case "$reposta" in
            
           1) nome=$( dialog --stdout --inputbox 'Digite o nome:' 0 0 )
            
              fone=$( dialog --stdout --inputbox 'Digite o Telefone:' 0 0 )
            
              echo $nome - $fone >> agenda;
           ;;
         
           2)  sort agenda > agenda.tmp
                
               dialog --textbox agenda.tmp 0 0
                
               rm -rf agenda.tmp
           ;;
         
           3)  nome=$( dialog --stdout --inputbox 'Digite o nome:' 0 0 )
                
               cat agenda | grep $nome > agenda.tmp
                
               dialog --textbox agenda.tmp 0 0
 
               rm -rf agenda.tmp
           ;;
         
           4) nome=$( dialog --stdout --inputbox 'Digite o nome:' 0 0 )
 
              mv agenda agenda.tmp
              
              grep -v $nome agenda.tmp > agenda
 
              rpm -rf agenda.tmp
           ;;
    
           0)  break
   
           ;;
esac
done

quinta-feira, 13 de outubro de 2011

Instalando o Bacula-web no CentOS 5.X



Bacula-web é uma ferramenta de código aberto cujo projeto começou em 2004, originalmente escrito por Juan Luis Frances, que se encontra atualmente na versão 5.1.0-ALPHA. Esta ferramenta é escrita em PHP, html, css e javascript, e é liberado sob os termos da licença GPL.

O Bacula-web serve para monitoramento e relatórios do Bacula, onde temos:
  • Quantos clientes configurados;
  • Total de bytes armazenados em seu catálogo;
  • Total de arquivos armazenados em seu catálogo;
  • O tamanho do banco de dados do catálogo.

Também temos em relação aos Jobs:
  • Jobs em execução;
  • Jobs concluídos;
  • Jobs com falha;
  • Jobs cancelados;
  • Jobs em espera.

Temos o status dos Jobs das últimas 24 horas onde informam:
  • Quantos Jobs em execução;
  • Jobs com falha;
  • Jobs concluídos;
  • Jobs em espera.

Quantos posts de Jobs para cada nível (incremental, diferencial e integral):
  • Total de bytes transferidos;
  • Arquivos transferidos.

Instalando e configurando

Após ter o seu Bacula já instalado e funcionando; chegou a hora de você visualizar os relatórios.

Bom, com o Bacula-web não é necessário estar no mesmo servidor do Bacula, pode ser em outra máquina.

Instalando o PHP e Apache:

# yum install httpd php php-gd php-gettext php-mysql php-pear-DB -y

Iniciando o Apache na inicialização:

# chkconfig httpd on

Baixe a versão alpha do Bacula-web:

# wget http://bacula- web.dflc.ch/tl_files/downloads/bacula-web.5.1.0-alpha.tar.gz

Crie o diretorio bacula-web

#mkdir /var/www/html/bacula-web

Após isso, vamos descompactar:

# tar -xzf bacula-web-5.1.0-alpha.tar.gz -C /var/www/html/bacula-web

Vamos ajustar o config.php:

# cd /var/www/html/bacula-web/config
# vim config.php


e deixe como no exemplo abaixo:
 <?php

$config['language'] = 'en_EN';

#MySQL bacula catalog
$config[0]['label'] = 'Backup Server';
$config[0]['host'] = 'IP';
$config[0]['login'] = 'usuario';
$config[0]['password'] = 'senha';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'mysql';
$config[0]['db_port'] = '3306';

?>


 Após isso, salve e saia do arquivo.

Ajustando as permissões:

# chown -Rv apache:apache ./bacula-web
# chmod -Rv u=rx,g=rx,o=rx ./bacula-web
# chmod -v ug+w ./bacula-web/templates_c


Reinicie o Apache:

# service httpd restart

E depois acesse:

http://seuip/bacula-web

quinta-feira, 6 de outubro de 2011

Instalando o editor Vim no CentOS 5

Um dica rápida de como instalar o Vim no CentOS.

Baixando e instalando o pacote:

# yum install vim-enhanced -y

Adicionado o alias:

$ echo "alias vi=vim" >> ~/.bashrc

e:

$ source ~/.bashrc

Pronto. Vim instalado!

Para testar:

$ vim

terça-feira, 16 de agosto de 2011

Ajustar o GW e os DNS No Ubuntu

#!/bin/bash
#
# Script para realizar torca de rotas
# e Ajustando o DNS
# utilizando Dialog
# Versao 0.1
# Daniel Lara Souza
# 29 Novenbro 2010



while : ; do
reposta=$(
dialog --stdout               \
        --title     ' Verifica o GW ' \
        --menu    'Escolha um opcao: ' \
        0 0 0            \
        1 'GATEWAY ATUAL'   \
        2 'DNS ATUAL'    \
        3 'TROCAR GATEWAY'  \
        4 'ADICIONAR DNS PRIMARIO' \
        5 'ADICIONAR 1 OU + DNS SEGUNDARIO'  \
        0 'Sair'      \
                   )      
   [ $? -ne 0 ] && break

   case "$reposta" in
        
           1) route -n > /tmp/route.txt
              dialog --tailbox /tmp/route.txt 8 75
           ;;
           2) cat /etc/resolv.conf > /tmp/dns.txt
              dialog --tailbox /tmp/dns.txt 8 75
           ;;
           3) GATEWAY=$( dialog --stdout --inputbox 'Digite o número do gateway (roteador): ' 0 0 )
              route del default ; route add default gw $GATEWAY
           ;;
           4) DNS1=$( dialog --stdout --inputbox 'Digite o número do servidor DNS primário: ' 0 0 )
              echo > /ete/resolv.conf
              echo "nameserver $DNS1" > /etc/resolv.conf
           ;;
           5) DNS2=$( dialog --stdout --inputbox 'Digite o número do servidor DNS secundário: ' 0 0 )
              echo "nameserver $DNS2" >> /etc/resolv.conf
           ;;
           0) break
           ;;
esac
done

sexta-feira, 12 de agosto de 2011

Debian Day 27 - Agosto





Com grande honra convido a Comunidade Debian, e o Nerdedo em geral, a desfrutar de algumas horas no próximo dia 27 de Agosto, Sábado, para a obtenção de conhecimento através de palestras, debate, lighting talks e claro, um bate-papo amistoso, na edição 2011 do Debian Day, promovido pelo Debian-RS em parceria com ASL.org, OpenCode, ESADE, TeHospedo e Tchelinux.org
Com o tradicional Welcome Coffee do Debian-RS e Sorteio de Camisetas :D
O evento será realizado na ESADE, unidade Cidade Baixa, à Rua Luis Afonso, 84, a poucos metros do Zaffari da Rua General Lima e Silva.

Grade do evento:
  • 9h - 9h 30m - Recepção e Café de Boas-Vindas
  • 9h 30m - 10h - Abertura e Sobre Debian-RS
  • 11h - 12h - Não sou programador, como posso ajudar o Projeto Debian?
  • 12h - 12h 30m - 3 Lighting Talk sobre Software Livre
  • 12h 30m - 13h 30m - Almoço (cada um por sí)
  • 13h 30m - 14h 30m - Administradores de Sistemas e suas Gambiarras
  • 14h 30m - 15h 30m - Uso de ferramentas OpenSource para Análise Forense (pós mortem)
  • 15h 30m - 16h - Coffee-break
  • 16h - 17h - Comunicação e Software Livre
  • 17h - 18h - Debate sobre Comunidades, Oportunidades, Comunicação e Software Livre
  • 18h - 18h 30m - 3 Lighting Talk sobre Software Livre
  • 18h 30m - 19h - Encerramento
Inscrições diretamente no link http://tinyurl.com/inscDD11


Resumo das Palestras:
Título: Não sou programador, como posso ajudar o Projeto Debian?

Resumo da Palestra: Essa não é uma palestra técnica, mas visa explicar como o Projeto Debian trabalha em diversas frentes, permitindo que qualquer pessoa ajude com suas aptidões e desejos de trabalho. O palestrante deve visitar os sites sugeridos na própria palestra.

Resumo do Palestrante: Luiz Guaraldo é Analista de Suporte GNU/Linux, Líder dos Grupos de Usuários Debian-RS e LTSP-BR, gaúcho por opção. Site pessoal: http://www.universolivre.net.br


Título: 3 Lighting Talk sobre Software Livre

Resumo da Palestra: Espaço aberto a presentes falarem, por 10 minutos no máximo, sobre alguma experiência pessoal ou de terceiros, um relato sobre pesquisa, algum conhecimento útil, ou outra coisa desde que tenha alguma fundamentação em Software Livre, ou sendo mais simplório, pode ser a chance de se lançar fazendo um stand-up comedy mesmo.

Título: Administradores de Sistemas e suas Gambiarrasr

Resumo da Palestra: Palestra voltado a SysAdmins com técnicas que não devem ser feitas para administração de sistemas e servidores, palestra com didática divertida e muito bom humor.

Resumo do Palestrante: João Fracassi é Técnico de Suporte N2 na empresa Kenta Informática, com experiência em SysAdmin, resolução de problemas em ambiente de sistema (software/hardware), redes. É acadêmico na área de técnologia da informação e Dell Certified System Expert Certification, Microsoft Certified Professional, Novell Certified Linux Administrator e Linux User#524982 e Daniel Lara é Administrador rede na empresa Rede Host, com experiência em administração de redes Linux. É Acadêmico na área de técnologia da informação, System Administrator, Network Administrator e Linux User #452387r

Título: Uso de ferramentas OpenSource para Análise Forense (pós mortem)

Resumo da Palestra: Como utilizar o Debian Squeezy e ferramentas OpenSource para fazer análise forense de Computadores comprometidos (pós mortem). Terá uma foco técnico, com demonstrações práticas.

Resumo do Palestrante: Leandro Godoy é Sócio Fundador e Consultor da OpenCode Consulting com anos de experiência na área de Software Livre. Entusiasta de Segurança da Informação e Gerenciamento de Projetos, possui Certificação LPI2, Novel, Mandriva, ITIL e COBIT. Nas horas vagas adora pilotar seu Nissan GT-R no Gran Turismo 5.

Título: Comunicação e Software Livre

Resumo da Palestra: Grande parte das informações absorvidas pelas sociedade se dá através da veiculação de informações em órgãos de imprensa. Para que as tecnologias de código aberto e a filosofia do software livre sejam introduzidas com maior facilidade no universo de conhecimento da sociedade de uma maneira geral, é importante que as informações sejam familiares aos profissionais de comunicação, que, em última análise, tornam-se formadores de opinião.
Dessa forma, nota-se a importância de que comunidades que fomentam o uso de software livre e empresas que atuam nesse ramo de negócios se apropriem também de conhecimentos em comunicação social. Esta palestra pretende apresentar, através de pesquisa, o entendimento de jornalistas de diversos veículos de imprensa do RS, além de cases de projetos de comunicação em software livre e dicas sobre procedimentos na área de comunicação.


Resumo do Palestrante: Rochele Prass é graduada em Letras, foi professora de Literatura e Língua Portuguesa. Atualmente, é acadêmica de Jornalismo, área em que atua desde 2004. Passou pela Agência de Notícias do curso de Comunicação da Universidade do Vale do Rio dos Sinos, foi âncora do programa de Rádio Reunião de Pauta da Rádio Unisinos.
Atuou na Rádio do Governo do Estado do RS, na Comunicação Social da Assembleia Legislativa do RS. Também foi repórter e produtora nas Rádios Bandeirantes AM e Band News FM de Porto Alegre e atuou na área de Assessoria de Imprensa Empresarial. Foi co-editora da Revista BrOffice.org e atuou na Assessoria de Imprensa do BrOffice.org - Projeto Brasil. Recentemente, fundou e edita o www.iniciativalivre.com.br, portal de notícias de Tecnologia da Informação.


Título: Debate sobre Comunicação e Software Livre, Comunidades, Oportunidades, Negócios em Software Livre

Resumo da Palestra: Um reunião aberta dos palestrantes anteriores, em conjunto com participantes, para debater sobre os assuntos títulos, seguindo uma continuação da palestra anterior com o acréscimo de informações e diálogo sobre, O que é a Comunidade Software Livre (que por incrivel que parece, há dúvidas), Oportunidades da área para quem está, ou não, em começo de carreira, e um pouco sobre Negócios e como se obter ter uma vida profissional trabalhando-se com Software Livre.

Resumo do Palestrante: Todos os anteriores, com o acréscimo de Luiz Henrique Rauber Rodrigues, que é Profissional Liberal na Área de TI, atualmente prestando serviço de consultoria a clientes da VSV Sistemas, já tendo atuado com serviços in company para clientes como Araujo Abreu Engenharia. Foco trabalho em Gerenciamento de Projetos, Gestão de TI, Gestão Empresarial, Melhorias de Processos, Organização de Equipes, e o que mais for constatado que aumente a produtividade empresarial. Já contribuiu palestrando/organizando eventos sobre Linux, Metodologias Ágeis (Agile), OpenOffice (BrOffice) e Negócios com Software Livre, em eventos como os da Tchelinux, Debian-RS, fisl, IIBA, PMI-RS, FLISOL, Latinoware dentro outros.
Título: 3 Lighting Talk sobre Software Livre

Resumo da Palestra: Espaço aberto a presentes falarem, por 10 minutos no máximo, sobre alguma experiência pessoal ou de terceiros, um relato sobre pesquisa, algum conhecimento útil, ou outra coisa desde que tenha alguma fundamentação em Software Livre, ou sendo mais simplório, pode ser a chance de se lançar fazendo um stand-up comedy mesmo.


Apoiadores e Patrocinadores:


OpenCode Consulting
ESADE - Laureate International Universities
TeHospedo - Hospedagem, Revenda, Cloud
ASL - Associação Software Livre.org
Tchelinux.org - Grupo de Usuários de Software Livre

segunda-feira, 11 de julho de 2011

rrdtool no Centos 5.6

Intalando o Software no RRDTool no Centos 5.6

 Crie o Repositório dag.repo

#vim /etc/yum.repos.d/dag.repo
Após vamos adicionar a o repositório

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1

Após Salva e Sair do arquivos

#yum install rrdtool

terça-feira, 7 de junho de 2011

Apresentando o Yad - "zenity melhorado"

Esse artigo foi cedido pelo Raimundo Alves Portela Filho ( "rai3mb" nick no viva o linux ) onde  mostrar uma maravilhosa ferramenta para GUI (Interface Gráfica com o Usuário), que acabou de sair do forno, o Yad, um fork do Zenity ( Já testei e achei bem melhor)  que vem com diversas melhorias, dentre elas a possibilidade de fazer formulários, melhorando a interação do usuário com nossos scripts em shell.

O bichinho é tão recente que nem o manual cobre todas as opções disponíveis
O autor do Yad é o ucraniano Victor Ananjevsky, e a página do projeto pode ser encontrada no:

Mesmo nessa página ainda há pouca informação sobre o uso do Yad, o melhor lugar que achei no momento é o manual dele (man yad) onde temos uma noção do que o Yad pode fazer .

Caso forem buscar informações, pouca coisa ainda está disponível, o manual está datado em “Marth 24, 2011”, e ainda tem o fato de Yad ser o nome de uma ferramenta “...usada em para apontar o texto durante a leitura do Torá...” (Fonte: http://en.wikipedia.org/wiki/Yad). Então ao buscar informações, busque por 'yad fork zenity' vai ser mais fácil.

Ok, vamos em frente pois no artigo pretendo mostrar alguns recursos do Yad, com uns 2 exemplo.

Instalação

Baixe o Yad no link abaixo:

Descompacte:

$ tar –jxf yad-0.11.0.tar.xz

Instale:

$cd yad-0.11.0/
$ ./configure
$ sudo make
$ sudo make install


Pode acontecer dele reclamar de alguma dependência, aqui no meu Debian, reclamou do libgtk2, basta instalar com:

$ sudo apt-get install libgtk2.0-dev


Após instalar, podemos testar com:

$ yad
e irá aparecer na tela

Parabéns o yad esta instalado e funcionado
Agora vamos à parte divertida e viciante, programar

Possibilidades e Exemplos de Uso

A sintaxe básica é :

yad [--tipo-dialogo] [--options]

Abaixo mostro exemplo com os tipos de diálogo:

--calendar (calendário)
--color (paleta de cores)
--entry (entrada de dados)
--icons (mostra uma caixa com ícones de atalho para aplicações)
--file (diálogo para selecionar arquivos)
--font (diálogo para seleção de fontes)
--form (aeeeeeee formulários)
--list (diálogo com ítens em lista)
--notification (mostra um ícone da barra de notificação do sistema)
--progress (diálogo de progresso)
--text-info (mostra o conteúdo de um arquivo texto)
--scale (diálogo para seleção de valor, usando uma escala)

Vamos lá, para cada um dos exemplos coloco o script e depois algumas imagens da sua execução.
Exemplo com " --calendar "
Mostra um calendário permitindo selecionar a data e envia o valor para a saída padrão
Crie um arquivo e edite com o " vi "
 $vi  calendar.sh

#!/bin/bash
# uso do yad com --calendar

# mostra um calendário iniciando com o dia 20/05/2011
# guarda o valor selecionar na variável $DATA
DATA=$(\
        yad --calendar \
        --day=20 \
        --month=5 \
        --year=2011 \
        --date-format=%d\/%m\/%Y \
                --title=Calendario \
                --center \ # disposição do diálogo na tela
)

# mostra um diálogo informando a $DATA selecionada
yad --title="AVISO" \         --text="Você selecionou a data $DATA"

#.EOF
Salve com o nome de "calendar.sh", dê permissão de execução:

$ chmod +x calendar.sh

Execute:

$ ./calendar.sh


Após selecionar uma data:



 Exemplo com " --form "

Uma das novidades que mais gostei: FORMULÁRIOS, não dava pra fazer isso no Zenity, e limitava as entradas do usuário tendo que aprensetar várias telas para coletar dados, o que não é muito prático.
Crie um arquivo e edite com o "vi"
 $vi  form.sh

#!/bin/bash
# yad com FORMULARIOS, que bacana, tem algumas novidades aprecie com calma
HOJE=$(date +%d/%m/%Y)
touch $HOME/cad_usuario.txt

VAR_FORM=$( \
   yad --form \
        --title="CADASTRO DE USUÁRIOS" \
        --width=400 \
        --height=400 \
        --image="accessories-text-editor" \
      --field="Cadastrando em":RO "$HOJE" \
        --field="Nome:" "" \
      --field="Sexo":CB Masculino!Feminino \
      --field="Login:" "$USER" \
      --field="Senha:":H "123456"\
        --field="Ler livro sobre:":RO "" \
      --field="Programação":CHK FALSE \
      --field="Redes":CHK FALSE \
      --field="Linux":CHK TRUE \
      --field="Quantos Filhos:":NUM 0!0..10!1 \
        --field="Foto:":FL "$HOME/Pictures" \
      --field="Salvar dados em:":DIR "$HOME" \
      --field="Cor preferida:":CLR "#00DDDD" \
)

DATA=$(echo "$VAR_FORM" | cut -d"|" -f 1)
NOME=$(echo "$VAR_FORM" | cut -d"|" -f 2)
SEXO=$(echo "$VAR_FORM" | cut -d"|" -f 3)
LOGIN=$(echo "$VAR_FORM" | cut -d"|" -f 4)
SENHA=$(echo "$VAR_FORM" | cut -d"|" -f 5)
#notem que pulei o campo 6, pois o mesmo nao retorna valor útil para nós
LIVRO_PROGRAMACAO=$(echo "$VAR_FORM" | cut -d"|" -f 7)
LIVRO_REDES=$(echo "$VAR_FORM" | cut -d"|" -f 8)
LIVRO_LINUX=$(echo "$VAR_FORM" | cut -d"|" -f 9)
QTD_FILHOS=$(echo "$VAR_FORM" | cut -d"|" -f 10)
FOTO=$(echo "$VAR_FORM" | cut -d"|" -f 11)
SALVAR_EM=$(echo "$VAR_FORM" | cut -d"|" -f 12)
COR=$(echo "$VAR_FORM" | cut -d"|" -f 13)
# repare que o campo $QTD_FILHOS retorna um valor no formato 0.000000
# vc pode usar uma expressão regular, ou o cut, para capturar apenas os digitos antes do .

QTD_FILHOS=$(echo $QTD_FILHOS | cut -d"." -f 1)

#apenas vou mostrar os campos e valores de retorno em um html
DADOS_USUARIO="<table border=1><br/>
         <tr><th>CAMPO</th><th>VALOR</th></tr>
         <tr><td>DATA</td><td>$DATA</td></tr>
         <tr><td>NOME</td><td>$NOME</td></tr>
         <tr><td>SEXO</td><td>$SEXO</td></tr>
         <tr><td>LOGIN</td><td>$LOGIN</td></tr>
         <tr><td colspan=2 align=center>LIVROS</td></tr>
         <tr><td>PROGRAMACAO</td><td>$LIVRO_PROGRAMACAO</td></tr>
         <tr><td>REDES</td><td>$LIVRO_REDES</td></tr>
         <tr><td>LINUX</td><td>$LIVRO_LINUX</td></tr>
         <tr><td>QTD_FILHOS</td><td>$QTD_FILHOS</td></tr>
         <tr><td>FOTO</td><td><img src='$FOTO' /></td></tr>
         <tr><td>DIRETORIO</td><td>$SALVAR_EM</td></tr>
         <tr><td>COR</td><td bgcolor='$COR'></td></tr>
      </table>"

echo $DADOS_USUARIO > cad_usuario.htm

firefox cad_usuario.htm

#.EOF


Salve com o nome de "form.sh", dê permissão de execução:

$ chmod +x form.sh

Execute:

$ ./form.sh


Após preencher o formulário:


Conclusões e Agradecimentos

Estou adorando conhecer o Yad, espero que a comunidade goste também, quanto mais pessoas apoiarem esse projeto, seja usando, seja divulgando, mais temos chances que ele se torne padrão futuramente nas distribuições mais usadas, como Ubuntu.
As possibilidades com o Yad são várias, depende apenas da criatividade,
Esses exemplos foram apenas demonstrativos. No site do projeto,
temos alguns exemplos bem interessantes
Mas ao longo do tempo vou postar aqui vários Scripts com Yad .
O Julio Neves apresentou uma palestra sobre o Yad no CONSEGI ,
 Ele tambem já informou que está trabalhando numa documentação,
onde já tem 70 Paginas acho que logo sai um livro sobre YAD será ?
Quero Agradecer o Raimundo Alves Portela Filho
por ter cedido seu artigo no Viva o Linux
ao Julio Neves pelo seu artigo no Dicas-L onde eu conheci o Yad
e também o Victor Ananjevsky por criar o Yad

Link do Artigo do Raimundo no Viva o Linux

Link do Artigo do Julio Neves no Dicas-L onde eu conheci o yad

Lista de Discussão do Yad no google  o Victor Ananjevsky sempre aparece por lá













quinta-feira, 26 de maio de 2011

dhcpd.conf

#etc/dhcpd.conf
#configuracao do DHCP server

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;

#definindo a rede que o dhcp ira funcionar
subnet 192.168.19.0 netmask 255.255.255.0 {
range 192.168.19.1 192.168.19.199;
option routers 192.168.19.254;
option domain-name-servers 192.168.19.254;
option broadcast-address 192.168.19.255;
}

#maq com ip fixo
host meupc {
hardware ethernet 00:0B:A0:44:E1:13;
fixed-address 192.168.19.235;
}

sábado, 21 de maio de 2011

Simples Barra de Progresso em Dialog

#!/bin/bash

t=0;
while [ $t -lt 100 ];
do t=$[t+1];
echo $t;sleep 0.05;
done\
| dialog --gauge "Carregando o Sistema..." 6 75

sábado, 14 de maio de 2011

Script Realiza Backup em Unidade de Fita DAT

#!/bin/bash
#
# Script para realizar backup e restaurar
# utilizando Dialog
# Versao 0.2
# Daniel Lara Souza
DIA=$( date +%d )
MES=$( date +%b )
ANO=$( date +%Y )
FILE="${DIA}${MES}${ANO}"

 while : ; do
 reposta=$(
    dialog --stdout               \
           --title     ' BACKUP ' \
           --menu    'Escolha um opcao: ' \
           0 0 0               \
           1 'Status Fita Dat'   \
           2 'Efetua Backup na Fita'  \
           3 'Resturacao total da Fita ' \
           4 'Ejetar Fita Dat'       \
           5 'Verifica o Tamanho da Pasta de Restauracao'  \
           0 'Sair'        \
                   )       
   [ $? -ne 0 ] && break

   case "$reposta" in
         
           1) dialog --yesno 'Deseja Continuar ? [s/n]' 0 0
           if [ $? = 0 ]; then
           mt -f /dev/st0 status > /root/fita.txt
           STATUS=$( grep -qs 'ONLINE' /root/fita.txt && echo 'ONLINE' )
           if [ "$STATUS" = ONLINE ]
           then
           echo  ONLINE > /root/statusfita.txt
           else
           echo OFFLINE > /root/statusfita.txt
           fi
           dialog --tailbox /root/statusfita.txt 8 75
           else
            dialog --msgbox 'Processo Cancelado Pelo Usuario !' 5 45
           fi
           ;;
           2) dialog --msgbox 'Efetuando o Backup' 5 45
           sleep 2
           tar -cvf /dev/st0 /dados /etc /var
           ;;
           3) dialog --yesno 'Deseja Continuar ? [s/n]' 0 0
           if [ $? = 0 ]; then
           dialog --msgbox 'Limpando pasta do Backup no Diretorio /Restore ' 5 45
           sleep 2
           # Cria o diretorio  /Restore
           rm -rf /Restore/*
           dialog --msgbox 'Criando Pasta com a Data de HOJE no Diretorio /Restore' 5 45
           mkdir /Restore/$FILE
           dialog --msgbox 'Extraindo o Backup ' 5 45
           sleep 2
           tar -xvf /dev/st0 -C /Restore/$FILE/        
           else
           dialog --msgbox 'Processo Cancelado Pelo Usuario !' 5 45
           fi
           ;;
           4) dialog --yesno 'Deseja Ejetar a Fita DAT ? [S/N]' 0 0
           if [ $? = 0 ]; then
           dialog --msgbox 'Ejetando a Fita Dat' 5 45
           sleep 1
           mt -f /dev/st0 eject
           else
           dialog --msgbox 'Processo Cancelado Pelo Usuario !' 5 45
           fi
           ;;
           5) du -hs /Restore > /root/espacodisco.txt
              df -h >> /root/espacodisco.txt
           dialog --tailbox /root/espacodisco.txt 10 75
           ;;
           0)  break ;;
esac
done

quarta-feira, 12 de janeiro de 2011

Instalando Nagios no Centos 5.5 onde o nagios fica no /etc

Vou mostrar como instalar o nagios no /etc onde por padrão é instalado no
/usr/local/nagios ; instalando no /etc para ficar no padrão dos arquivos
e fica até mais fácil de efetuar backup

Apos instalação do Centos 5.5 efetua a atualização
do sistema

#yum update -y

Após vamos instalar as dependências

# yum install httpd php gcc gcc-glibc-common gd gd-devel -y

Bom agora vamos adicionar o usuário e grupo

#useradd -m nagios
#passwd nagios
#groupadd nagcmd
#usermod -a -G nagcmd nagios
#usermod -a -G nagcmd apache

Agora Crie um Diretório pode ser no /root

#cd /root
#mkdir download
#cd download

Vamos Baixar o Nagios e Nagios Plugin

#wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz

#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

Descompactando e instalando o Nagios no /etc

#tar -zxvf nagios-3.2.3.tar.gz
#cd nagios-3.2.3

No ./configure vamos usar o "--prefix=/etc/nagios" para instalar o nagios no /etc

#./configure --prefix=/etc/nagios --with-command-group=nagcmd

#make all

#make install

#make install-init

#make install-config

#make install-commandmode

#make install-webconf

Criando usuário para acesso web nesse caso vamos usar o usuário nagiosadmin

#htpasswd -c /etc/nagios/etc/htpasswd.users nagiosadmin

Instalando o Nagios Plugin

#cd ..
#tar -zxvf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15

Mesmo parâmetro vamos utilizar para a instalação do nagios-plugins

#./configure --prefix=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios

#make

#make install


Iniciando os serviços

#chkconfig nagios on

#chkconfig httpd on

#service nagios start

#service httpd restart

Pronto instalação esta ok  onde o caminho do nagios é /etc/nagios e não
/usr/local/nagios