sexta-feira, 28 de junho de 2013

Como alterar as partições do disco com Cfdisk

Um disco rígido (e qualquer outro dispositivo de armazenamento) pode ser dividido em pedaços lógicos chamados partições. Um hd pode ter até 4 partições (primárias e estendidas). As partições primárias podem conter sistemas de arquivos normalmente. Já as partições estendidas só podem conter outras partições, chamadas de partições lógicas. Ao todo, cada disco pode ter um total de 16 partições.

No Linux, o primeiro dispositivo sata, ou o primeiro scsi, é identificado como /dev/sda. Cada partição é identificada com um número, indo de /dev/sda1 até /dev/sda4 para partições primárias e estendidas, e de /dev/sda5 até /dev/sda16 para as lógicas.

Há várias ferramentas para criar partições no Linux. Usando interface gráfica temos o Gparted. Na linha de comando temos o fdisk (mais antigo e cheio de recursos), o parted (se você tem um drive maior do que 2Tb), e o cfdisk, que mostro abaixo. Para usá-lo você precisa estar logado como root, e passar como único parâmetro o disco em questão (reparem que não é a partição, mas o disco!).

# cfdisk /dev/sda


No meu exemplo temos 4 partições, 2 primárias (1 e 2), uma estendida (3) e uma lógica (5). Usando as setas acima e abaixo podemos escolher em qual partição iremos trabalhar (ou em qual espaço livre, se houver). Abaixo estão as opções possíveis para a partição escolhida, e podem ser selecionadas usando as seta direita e esquerda. É possível criar, apagar, modificar o tipo e até formatar a partição escolhida. É bem mais fácil do que usar o fdisk.

O cfdisk pode ser instalado via apt-get, ou outro gerenciador de aplicativos, como o Synaptic. Ele está disponível no pacote util-linux.


quinta-feira, 27 de junho de 2013

Dicas do comando "cd" para facilitar a navegação pelas pastas do sistema

O comando cd é usado para navegar pelas pastas do sistema. Por exemplo, para entrar na pasta /etc basta digitar:

$ cd /etc

Se quiser entrar na pasta /etc/apache2, supondo que você esteja em /etc, há duas formas:

$ cd apache2
$ cd /etc/apache2

A primeira forma não há "/". A primeira barra sempre faz referência à pasta raiz (semelhante ao drive C no Windows). Como já estou dentro de /etc, então digitar "cd apache2" fará com eu entre na pasta "apache2" que está dentro da pasta atual, etc.

Na segunda forma eu especifiquei o caminho completo da pasta, /etc/apache2. Neste caso eu posso estar em qualquer pasta que esse comando vai funcionar.

Pois bem. Agora vamos aos atalhos. Primeiramente, vamos verificar em qual pasta estamos:

$ pwd
/etc/apache2

Para irmos para a pasta /home, digitamos:

$ cd /home
$pwd
/home

Para voltarmos para a pasta /etc/apache2 (a pasta anterior), basta digitar:

$ cd -
/etc/apache2

Se eu digitar novamente "cd -" vou novamente para a pasta "/home".

$ cd -
/home

Para ir ao dirotório raiz basta digitar:

$ cd /
$pwd
/

Para ir para a minha pasta de trabalho, basta digitar:

$ cd
$ pwd
/home/ricardo

Quando digito "cd" sem argumento, o comando vai te encaminhar para a pasta definida na variável $HOME.

$ echo $HOME
/home/ricardo

O mesmo ocorre com o parâmetro "~". Se eu quiser ir para a minha pasta "tmp" que está dentro do meu home, eu posso digitar:

$ cd ~/tmp
$ pwd
/home/ricardo/tmp

Para acessar uma pasta acima (a pasta pai) digite:

$ cd ..
$ pwd
/home/ricardo

Se quiser acessar duas pastas acima (a pasta "avô" da atual), digite:

$ cd ../..
$ pwd
/

Se você pretende tirar uma certificação LPI você deverá conhecer esses atalhos.

quarta-feira, 26 de junho de 2013

Como extrair o texto de arquivos .ppt e .doc

Não sei vocês, mas eu fico irritado quando me mandam uma mensagem com um arquivo anexo (uma apresentação em .ppt, ou um documentos do Word .doc) e nesse anexo tem uma mensagem que poderia perfeitamente ser colocada diretamente no e-mail. A mensagem que tem 2Mb poderia muito bem ser de apenas 100Kb.

Outra situação que me irrita são aquelas apresentações em Power Point cheias de conteúdo. Parece que o apresentador simplesmente copiou a apostila do Word e colocou na Apresentação. 

Em ambos os casos, extrair o texto desses documentos geralmente é um trabalhão. Seleciona um trecho do texto, botão direito, copiar, muda para o editor de texto, botão direito, colar, volta para a apresentação, seleciona outro trecho, botão direito, copiar, volta para o editor, botão direito, colar, e assim sucessivamente até completar as oitenta telas da apresentação.

Mas quem usa Linux tem uma ótima opção instalando o pacote Catdoc

$ apt-get install catdoc

Para extrair o texto de uma apresentação, use o comando:

# catppt apresentação.ppt > apresentação.txt

Para extrair o texto de um arquivo .doc, use:

# catdoc documentos.doc > documento.txt

Agora temos dois arquivos com o que realmente interessa: apresentação.txt e documento.txt

terça-feira, 25 de junho de 2013

Calendário na linha de comandos

Cal é um programa que exibe um calendário na linha de comandos do Linux.

Executando cal sem parâmetro, o mês atual é mostrado, com o dia atual em destaque.


Você pode especificar o ano.


Descobri que nasci num domingo! Outra opção útil é "-j" que mostra os dias do ano em sequência.


Para ver o mês de um ano qualquer, basta digitar o ano e especificar o mês com o parâmetro "-m".


Repararam que em setembro de 1752, os dias 3 até 13 não existiram? Nessa época descobriram que o calendário Juliano, usado até então, estava atrasado alguns dias. Para resolver o problema, decidiram pular esse dias e adotar o calendŕio Gregoriano. Azar de quem estava de férias!

segunda-feira, 24 de junho de 2013

Linux com cara de Mac OSX

O Cairo Dock é um programa que é semelhante a barra de aplicativos do Mac OSX.


Em seu tela de personalização é possível deixar a barra em baixo, em cima, do lado direito, do lado esquerdo, além de várias outras opções de aparência e tipo de visualização. Vale a pena testar algumas configurações. Abaixo, um exemplo da barra do lado direito.


Aqui, um outro exemplo da barra do lado direito.


Aproveitando, estou mostrando a tela no meu desktop do escritório, com Linux usando a interface Gnome-shell.



Esse aplicativo está disponível em praticamente todas as distribuições. No Debian e suas variantes, bastas executar:

# apt-get install cairo-dock*





sexta-feira, 21 de junho de 2013

Como ler arquivos de texto compactados

Para ler arquivos de texto no Linux usando o terminal há vários comandos. Eis alguns:
  • cat: lista todo o conteúdo do arquivo
  • more: lista o arquivo uma página por vez.
  • less: lista o arquivo uma página por vez, com opção de voltar a página (o more não permite isso).
  • grep: traz as linhas do arquivos texto que contém uma pré-determinada sequência de caracteres.

Para ler arquivos compactados não é necessário descompactá-los primeiro. Os mesmos comandos acima também possuem versão compatíveis para formatos .gz e .bz2.

Para gz, há zcat, zmore, zgrep e zless. Para bz2, há bzcat,  bzgrep, bzless e bzmore.

Provavelmente esses comandos já estejam disponíveis na sua distribuição, mas caso não estejam, basta executar:

# apt-get install bzip2 gzip

quinta-feira, 20 de junho de 2013

Criando uma Bridge (ponte) com duas placas de rede

Uma bridge, ou ponte, funciona ligando um segmento de rede a outro, numa mesma vlan. Antigamente era usada para ligar pontos distantes, pois o sinal da rede é reforçado quando passa pela bridge.

Hoje em dia, uma bridge pode ser usada para monitorar o tráfego em um determinado equipamento colocando-a entre a rede e o computador em questão. A bridge é transparente, ou seja, ela não é visível para as máquinas da rede, pois todo tráfego que entra por uma interface de rede é simplesmente direcionada para a outra interface.

Para configurar uma bridge você precisa de uma máquina com pelo menos duas interfaces de rede. No exemplo a seguir, listo as duas interfaces.

# ifconfig -a
eth0      Link encap:Ethernet  Endereço de HW 08:00:27:cd:82:9c
    inet end.: 172.20.18.51  Bcast:172.20.255.255  Masc:255.255.0.0
    endereço inet6: fe80::a00:27ff:fecd:829c/64 Escopo:Link
    UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
    RX packets:119253 errors:1 dropped:0 overruns:0 frame:0
    TX packets:706 errors:0 dropped:0 overruns:0 carrier:0
    colisões:0 txqueuelen:1000
    RX bytes:12793655 (12.2 MiB)  TX bytes:54001 (52.7 KiB)
    IRQ:10 Endereço de E/S:0xd020

eth1      Link encap:Ethernet  Endereço de HW 08:00:27:6a:05:c3
    BROADCASTMULTICAST  MTU:1500  Métrica:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    colisões:0 txqueuelen:1000
    RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
    IRQ:9 Endereço de E/S:0xd060


lo        Link encap:Loopback Local
     inet end.: 127.0.0.1  Masc:255.0.0.0
     endereço inet6: ::1/128 Escopo:Máquina
     UP LOOPBACKRUNNING  MTU:16436  Métrica:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     colisões:0 txqueuelen:0
     RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


#

Primeiramente, vamos instalar o  pacote bridge-utils.

# apt-get install bridge-utils
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os NOVOS pacotes a seguir serão instalados:
bridge-utils
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 0 B/31,2 kB de arquivos.
Depois desta operação, 111 kB adicionais de espaço em disco serão usados.
Selecionando pacote previamente não selecionado bridge-utils.
(Lendo banco de dados ... 27398 ficheiros e directórios actualmente instalados.)
Desempacotando bridge-utils (de .../bridge-utils_1.4-5_i386.deb) ...
Processando gatilhos para man-db ...
Configurando bridge-utils (1.4-5) ...
#

Vamos criar a interface virtual que representará a bridge.

# brctl addbr br0
# ifconfig -a br0
br0       Link encap:Ethernet  Endereço de HW d6:d2:b6:35:bd:29
     BROADCASTMULTICAST  MTU:1500  Métrica:1
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
     colisões:0 txqueuelen:0
     RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
#

Agora vamos adicionar as interfaces que vão fazer parte da bridge.

# brctl addif br0 eth0 eth1

Verificando a bridge...

# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0800276a05c3 no eth0
eth1
#

Isso basta para que a bridge funcione. No entanto, você vai querer acessá-la remotamente. Então, vamos configurá-la, incluindo as linhas abaixo no arquivo /etc/networking/interfaces.

/etc/networking/interfaces.
auto br0
iface br0 inet static
     address 172.20.18.51
     netmask 255.255.0.0
     network 172.20.0.0
     broadcast 172.20.255.255
     bridge_ports eth0 eth1

Se for usar dhcp, as linhas devem ser:

/etc/networking/interfaces.
auto br0
iface br0 inet dhcp
     bridge_ports eth0 eth1

Com uma máquina simples você pode monitorar o tráfego do teu gateway sem fazer qualquer mudança na topologia, e sem fazer qualquer mudança no gateway. Basta colocar a bridge entre o gateway e o roteador da Internet.

* Esse artigo foi primeiramente publicado no site http://linuxnewmedia.com.br/blogs/rede/2013/01/30/criando-uma-bridge.

quarta-feira, 19 de junho de 2013

Brincando com o Dns Server – parte 4 - Dns secundário

Continuando o assunto sobre dns...

Vamos agora configurar um dns slave, ou secundário. A primeira coisa a fazer é habilitar o slave no servidor master. Para isso, abra o arquivo /etc/bind/named.conf.local e altere conforme abaixo.

zone "minhaempresa.inet" {
     type master;
     file "/etc/bind/master.minhaempresa.inet";
     allow-transfer {
        172.20.1.11;
     };
};

Isso fará com que as alterações no dns master sejam replicadas para o dns slave (ip 172.20.1.11). Você pode ter quantos dns slave quiser.

Em seguida, configure o servidor slave. Abra o arquivos /etc/bind/named.conf.local e inclua as linhas abaixo.

zone "minhaempresa.inet" IN {
     type slave;
     file "/etc/bind/slave.minhaempresa.inet";
     masters { 172.20.120.4; };
};

Aqui definimos a zona como slave e configuramos o endereço do servidor master. Reinicie o Bind9 do Slave.

# /etc/init.d/bind9 restart

Após isso, o servidor dns slave vai transferir toda a zona minhaempresa.inet do master e criará automaticamente o arquivo /etc/bind/slave.minhaempresa.inet. Faça as alterações do master (não se esqueça de alterar o serial) e veja se a replicação está sendo feita corretamente.

O propósito dessa série de artigos foi mostrar como levantar dois servidores dns, um master e outro slave. Isso é o que basta para você poder registrar um domínio na Fapesp. O Bind9 tem muitos outros recursos que não convém falar aqui. Se estiver interessado em saber mais sobre dns e sobre o Bind9, acesse http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html


terça-feira, 18 de junho de 2013

Brincando com o Dns Server – parte 3 - Reverso

Continuando o assunto sobre dns...

O dns reverso funciona convertendo ip em nomes de host. Ele existe quando se quer garantir que um determindado ip realmente corresponde ao host. Por exemplo, quando um servidor de e-mail recebe uma mensagem, este pode verificar se o ip de origem realmente pertence ao domínio do remetente, se o ip que eu estou acessando pertence ao site em questão, etc.

Para configurar o reverso, vamos abrir o nosso arquivo /etc/bind/named.conf.local e adicionar as linhas abaixo referentes a nova zona reversa.

zone "1.20.172.in-addr.arpa" {
        type master;
        file "/etc/bind/1.20.172.rev";
};

A zona reversa tem essa estrutura meio estranha. Como minha rede é 172.20.1.x, seu nome começa com os três primeiros números do ip ao contrário (1.20.172) seguido do texto que identifica uma zona reversa ipv4 (in-addr.arpa). Os demais campos você já conhece.

Agora vamos criar o arquivo /etc/bind/1.20.172.rev com o conteúdo abaixo.

@ IN SOA ns1.minhaempresa.inet. root.minhaempresa.inet. (
         2013050203 ;serial
         14400 ;refresh
         3600 ;retry
         604800 ;expire
         10800 ;minimum
         )
1.20.172.in-addr.arpa.     IN     NS     ns1.minhaempresa.inet.
13                                 IN     PTR   www.minhaempresa.inet.

Salve o arquivo e reinicie o Bind. Detalhe: o tipo PTR é usado para descrever registros reversos.

# /etc/init.d/bind9 restart

Agora teste o dns reverso.

$ nslookup -type=ptr 172.20.1.13 localhost
Server: localhost
Address: ::1#53 13.1.20.172.in-addr.arpa name = www.minhaempresa.inet.
$

Repare que o endereço 172.20.1.13 corresponde ao endereço www.minhaempresa.inet.

Na próxima postagem vamos ver como configurar um dns slave.

segunda-feira, 17 de junho de 2013

Programando com Bluefish

Simples e eficiente. Assim é o Bluefish, um aplicativo usado para desenvolver páginas em html, script php, perl, bash, e em qualquer outra linguagem.


O Blufish reconhece o tipo de código e faz os ajustes visuais que facilitam a nossa vida, como endentação, cor, destaque de erros comuns, funções pré-criadas, assistentes para strings sql, etc.

O Bluefish está disponível no repositório estável do Debian, e pode ser instalado via apt-get.


sexta-feira, 14 de junho de 2013

Brincando com o Dns Server – parte 2 - Configuração

Continuando o post anterior...

Agora que já instalamos o Bind9, vamos configurar o primeiro domínio. Por enquanto, vamos criar um domínio interno, sem comunicação com a Internet. Abra o arquivos /etc/bind/named.conf.local e adicione as linhas abaixo.

/etc/bind/named.conf.local
zone “minhaempresa.inet” {
type master;
file “/etc/bind/db.minhaempresa.inet”;
};

Neste arquivo eu estou criando o domínio minhaempresa.inet (zone) como master (type). E o arquivo /etc/bind/db.minhaempresa.inet (file) terá as configurações específicas do domínio. Salve o arquivo. 

Agora vamos criar o arquivo /etc/bind/db.minhaempresa.inet.

/etc/bind/db.minhaempresa.inet
$TTL 3600
minhaempresa.inet. IN SOA ns1.minhaempresa.inet. hostmaster.minhaempresa.inet. (
2013042601 ;sn
1200 ;ref
3600 ;ret
1814400 ;ex
604800 ;nx
)
@ IN NS ns1.minhaempresa.inet.
www IN A 172.20.1.13

A primeira linha diz o tempo (ttl) de validade dos registros. Ou seja, quantos segundos os registros ficarão no cache de dns dos clientes. A segunda é o registro SOA (Start Of Authority) contendo o nome do servidor de origem e o e-mail do responsável pelo domínio (reparem que não tem “@”). Aconselha-se deixar os valores padrão.

“sn” é o número de série. A cada mudança no dns deve-se alterar esse registro. Eu costumo usar a nomenclatura ano-mes-dia-sequência_do_dia. “ref” diz de quanto em quanto tempo o servidor slave vai procurar por atualizações no master. ret diz o tempo em que o master vai tentar se conectar ao slave para considerá-lo fora de operaçao. ex diz em quanto tempo o registro expiram, e nx diz o tempo mínimo do registro.

A parte mais importante começa na linha “@”. Na primeira eu defino o Name Server. Na segunda linha eu defino um registro do tipo “A” www. Ou seja, o servidor www.minhaempresa.inet vai responder pelo ip 172.20.1.13. Eu posso adicionar quantos registros quiser.

Após cada alteração, execute:


# rndc reload minhaempresa.inet


O próximo post vamos conhecer os principais tipos de registro. 

quarta-feira, 12 de junho de 2013

Brincando com o Dns Server – parte 1

Escrevi alguns artigos sobre o Bind9 no site da Linux Magazine e vou reproduzí-los aqui. Quem quiser ver os "originais, os links estão aí em baixo:


Já vimos como funciona o dns e o processo de resolução de nomes. Agora, vamos instalar e configurar um dns server. Mesmo que você não tenha um domínio registrado, levantar um servidor dns na rede pode agilizar bastante o processo de resolução de nomes.

Basicamente, o dns tem três modos de operação: Standalone (ou cache), Master, e Slave, sendo que um servidor pode assumir uma ou mais funções ao mesmo tempo. Como Standalone, o dns vai cuidar apenas de resolver nomes dns de outros sites. Ele não é responsável por nenhum domínio. Essa é a forma mais simples de operação. O Master já exige que ele seja responsável por um domínio, que pode ser apenas interno (por exemplo, minhaempresa.inet) ou válido na Internet (como linuxmagazine.com.br). Já o Slave funciona como um backup de um master, recebendo as atualizações diretamente deste. Para registrar um domínio temos que ter, obrigatoriamente, pelos menos dois dns, um master e um slave.

Vamos começar do mais simples, que é o Standalone. Esse dns será o responsável pela resolução de nomes da rede. Assim, todos os equipamentos passarão a usá-lo como dns principal. Assim você economiza link, uma vêz que ninguém mais vai sair para a Internet para traduzir nomes em endereços. Essa função será do Dns Server.

# apt-get install bind9

Pronto! Difícil, não? Agora basta apontar as máquina para o endereço do dns. Para ter certeza de que ele está funcionando, verifique se a porta 53 udp está aberta.

$ netstat -na | grep :53
tcp 0 0 172.20.120.4:53 0.0.0.0:* OUÇA
tcp 0 0 127.0.0.1:53 0.0.0.0:* OUÇA
tcp6 0 0 :::53 :::* OUÇA
udp 0 0 172.20.120.4:53 0.0.0.0:*
udp 0 0 127.0.0.1:53 0.0.0.0:*

Tudo certo. O Servidor Dns está funcionando normalmente.

Uma breve explicação. Para resolver um nome, o Dns contém a relação dos Dns Server Raiz. Essa relação está em /etc/bind/db.root.
 
/etc/bind/db.root
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13
D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2D::D
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2F::F
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803F:235
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FE::53
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FD::1
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:3::42
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:DC3::35

Essa é a relação dos servidores root (raiz) que o Dns vai usar para resolver os nomes. Se quiser adicionar outro servidor fique à vontade. Porém isso geralmente não é necessário. Após resolver um nome, o Dns Server vai adicioná-lo em seu cache.

No proximo post, vamos começar a configurar um domínio no Dns Server.

terça-feira, 11 de junho de 2013

BibleTime - Software para o estudante da Bíblia

Já mostrei aqui o software aBiblia, que é uma ferramenta para quem estuda a Bíblia.

http://ricardoolonca.blogspot.com.br/2012/02/biblia-no-desktop.html

Agora venho mostrar outro programa: BibleTime.


Você pode adicionar diversos dicionários em várias línguas, outras versões da Bíblia, incluindo inglês, grego, alemão, etc.


O software está disponível nos repositórios da Debian e pode ser instalado via Synaptic, ou com o tradicional apt-get.

segunda-feira, 10 de junho de 2013

Calculadora de linha de comando

O Bc é uma calculadora de linha de comando muito poderosa. Seu uso é bem simples:

$ echo "10 * 10" | bc 100 $

Também é possível chamado o bc e executar os cálculos dentro do sistema.

$ bc bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
10 * 10
100
10 * (10 + 5)
150
quit
$

Não sei porque o Bc não está disponível no Debian 7, mas você ainda pode instalá-lo usando o repositório "oldstable".


quarta-feira, 5 de junho de 2013

Monitore arquivos de log e gere alertas sonoros com Tailbeep

Monitorar arquivos de log a espera de um evento específico é uma atividade muito comum para quem administra um ambiente Linux. Para procurar, por exemplo, por falhas de autenticação, basta usar o seguinte comando:

# tail -f /var/log/auth.log | grep 'authentication failure'

Mas você precisa ficar olhando para a tela e aguardar não sei quanto tempo para que o evento ocorra. Com uma placa de com e o Tailbeep você pode continuar trabalhando, pois quando o evento ocorrer o Tailbeep emitirá um som.

# tailbeep -f /var/log/auth.log -s 'authentication failure' -t `tty` -a "Ocorreu uma falha de autenticação"

Neste caso você precisa ter o Festival instalado para converter o texto em som.

# tailbeep -f /var/log/auth.log -s 'authentication failure' -t `tty` -x "espeak -v pt-br 'Ocorreu uma falha de autenticação'"

Neste exemplo eu faço o Tailbeep enviar um aviso usando o espeak.bn

O Tailbeep pode ser baixado de http://soomka.com/tailbeep.


terça-feira, 4 de junho de 2013

Comparativo do tempo de boot e login entre Windows 8 e Ubuntun 12.10

No site abaixo há um comparativo de desempenho entre o Windows 8 e o Ubuntu 12.10. Foram feitos dois teste: o primeiro comparando o tempo de boot, e o segundo comparando o tempo de login.

http://pplware.sapo.pt/linux/afinal-qual-e-o-mais-rapido-ubuntu-12-10-ou-windows-8/