quarta-feira, 8 de fevereiro de 2012

Agenda Simples em YAD

#!/bin/bash
#
# Agenda Simples em Yad
# Autor: Daniel Lara Souza
# Versao 0.2
# Migrado do Dialog para o Yad
# Ajuda do rai3mb ( Raimundo Alves Portela )
# na Criação do Menu

while : ; do
OPCAO=$( \
yad --list \
--title=' AGENDA ' --text='Escolha um opcao: ' \
--width=400 --height=200 \
--column='opcao':NUM --column='texto':TEXT \
--no-headers --print-column=1 --separator='' --hide-column=1 \
1 'Adicionar Contato' \
2 'Listar Contatos' \
3 'Pesquisar Contatos ' \
4 'Deletar Contatos' \
--button="Sair":1 --button="Acessar":0 )


[ $? -ne 0 ] && break

case "$OPCAO" in


1)
NOME=$( yad --entry --entry-label="Nome" --entry-text="")

FONE=$( yad --entry --entry-label="Telefone" --entry-text="")

echo $NOME - $FONE >> agenda;

;;
2) sort agenda > agenda.tmp

AGENDA=$(cat agenda.tmp)

yad --title="Agenda" --text="$AGENDA" --width="300" --height="100"

rm -rf agenda.tmp
;;

3) nome=$( yad --entry --entry-label="Nome" --entry-text="" )

AGENDA=$(cat agenda | grep $nome)

yad --title="Agenda" --text="$AGENDA" --width="300" --height="100"


;;

4) nome=$( yad --entry --entry-label="Nome" --entry-text="" )

mv agenda agenda.tmp

grep -v $nome agenda.tmp > agenda

rm -rf agenda.tmp
;;

0) break

;;
esac
done

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