sexta-feira, 26 de fevereiro de 2010

Instalando xmms no Ubuntu - Dica

O xmms é um player do linux bastante simples similar ao winamp do rwindows, com vantagem de ser muito simples e consumir os minimos recursos do sistema.

Para instala-lo primeiro adicione o repositório dele em sua source.list com o comando:

# echo deb http://www.pvv.ntnu.no/~knuta/xmms/jaunty ./ | sudo tee -a /etc/apt/sources.list

Depois atualize seu repositório:

# sudo apt-get update

Depois faça a instalação

# sudo apt-get install xmms

Pronto.

Acessem o site do nosso grupo de desenvolvimento em Joomla.
Taichous WebDesign
http://www.taichous.com

domingo, 31 de janeiro de 2010

Opera no Ubuntu 9.10

Dica rápida:
Instalação do Opera no Ubuntu 9.10

1º Passo:
Abra o arquivo sourco.lst (arquivo onde ficam as listas dos mirros onde deverão ser buscados pacotes para instalação de progranas)

#sudo gedit /etc/apt/source.lst

2º Passo
Adicione o repositório do Opera no arquivo source.lst:
deb http://deb.opera.com/opera/ etch non-free

3º Passo
Atualize sua lista de pacotes

#sudo apt-get update

4º Instale o Opera
ap

#sudo apt-get install opera

Pronto simples e rápido.

p.s: Use sempre um bom navegador, sugerimos Firefox, Opera, Chrome. NÃO UTILIZE INTERNET EXPLORER 6, além de não suportar as tecnologias atuais dos sites, é inseguro e cheio de falhas.

terça-feira, 15 de dezembro de 2009

Site do meu time de desenvolvimento web

Lançado o site da http://www.taichous.com equipe de desenvolvimento web criando sites de alta qualidade em joomla.

terça-feira, 6 de outubro de 2009

Instalação e configuração Apache2 , PHP, MySql e PostGreSQL

Esses dias precisei de usar MySql e PostGreSQL simultaneamente.
foi então que percebi que existe muito material para instalação, no entanto
tive que fazer uma compilação de vários materiais muito bons por sinal objetivando assim
criar este passo-a-passo bem simples e objetivo para Instalação e configuração Apache2 , PHP, MySql e PostGreSQL

Objetiva:

instale apache:

#sudo aptitude install apache2

Instale o Php com suporte a mysql
#sudo aptitude install php5
#sudo aptitude install php5-mysql

Instalar o phpMyAdmin

#sudo aptitude phpmyadmin
configurando phpmyadmin
->Servidor marque apache2

inciando os serviços
/etc/init.d/apache2 start
/etc/init.d/mysql start

entrar no browser
http://localhost/phpmyadmin

===============================
Agora vamos instalar o postgreSQL

#sudo aptitude install postgre-8.3

Instalando o phppgadmin
#aptitude install phppgadmin

===============================
Configurando o postgres
entre com o usuário postgres
#su postgres

Entre com o comando
#psql
Altere a senha do usuário postgress
\password postgres
saindo do psql
\q

Efetue logoff do usuario postgress

liberando acesso externo

#sudo vim /etc/phppgadmin/apache.conf

encontre a linha
obs( no vim ou vi com a barra (/) e o parametro ele faz busca basta pressionar enter após o parametro

order deny,allow
deny from all
allow from 127.0.0.0/255.0.0.0

altere deny from all para allow from all
comente a linha allow from 127.0.0.0/255.0.0.0

Agora vamos permitir acesso no browser ao usuário postgres

Abra o arquivo
#sudo vim /usr/share/phppgadmin/conf/config.inc.php

va na linha:
$conf['extra_login_security'] = true;
e sete para false.

Agora entre no browser http://localhost/phppdadmin
e efetue logon com usuário postgres e a senha que vc definiu dentro do psql.

Abraço
Fábio Leandro
Taichous Development
http://www.taichous.com


referencias
http://rogerio-depaula.blogspot.com/2009/08/instalar-e-esql.html

http://www.vivaolinux.com.br/artigo/Como-instalar-Postgres-8-no-Linux-em-10-passos-rapidos/?pagina=2

terça-feira, 22 de setembro de 2009

Instalar Javadoc no netbeans 6.7.x no ubuntu

Para instalar a documentação, muito útil no autocompletar do netbeans:

Baixe o arquivo de documentação em:
https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

ou

http://java.sun.com/javase/downloads/index.jsp#docs

mova o arquivo jdk-6u10-docs.zip para /tmp

instale:

# apt-get install sun-java6-doc

Configure o netbeans em Ferramentas -> Plataformas Java -> Javadoc -> Adicionar Zip/pasta

O caminho para o doc é "/usr/share/doc/sun-java6-doc/html"

Ok!!

quarta-feira, 24 de junho de 2009

Dica desabilitando o touchpad com atalho do teclado

Muito simples essa dica:

Crie uma arquivo no diretório /usr/bin com o nome de "touchpad"

$ sudo vi /usr/bin/touchpad

Adicione o seguinte:

#!/bin/bash
estado=`synclient -l | fgrep TouchpadOff | sed 's/^.*= //'`
if [ "$estado" = 1 ]
then
synclient TouchpadOff=0
kdialog -passivepopup "Touchpad Desabilitado" 1

else
synclient TouchpadOff=1
kdialog -passivepopup "Touchpad Habilitado" 1
fi

Dê permissão de execução:

$ sudo chmod a+x /usr/bin/touchpad

Teste:

$ touchpad

Movimente o mouse com o touchpad

$ touchpad

Movimente o mouse novamente

Caso dê uma mensagem de erro no comando synclient sobre o SHM

No ubuntu 9.04 adicione as seguintes linhas no final do arquivo /etc/X11/xorg.conf

# Desabilitar Touchpad
Section "module"
Load "synaptics"
EndSection
Section "InputDevice"
Identifier "touchpad"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "on"
Option "SHMConfig" "on"
EndSection
Section "ServerLayout"
Identifier "touchpad"
InputDevice "touchpad" "AlwayCore"
EndSection


Reinicie o servidor X

Ou então siga essa minha dica:

http://apolodigital.blogspot.com/2009/05/desabilitanto-o-touchpad-automaticamete.html

Nagios Habilitando comandos externos

Para habilitar comandos pela interface do nagios, como comentários por exemplo edite o arquivo:
/etc/nagios3/nagios.cfg

Procure pela linha:

check_external_commands=?

Substitua o ? pelo 1 para habilitar (No arquivo vai estar 0 ou 1)

Salve, se o nagios reclamar com um erro no arquivo /var/lib/nagios3/rw/nagios.cmd rode esses comandos para dar permissão ao nagios nesse diretório:

dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3

Reinicie o nagios como comando:

/etc/init.d/nagios3 restart

Pronto.

quarta-feira, 13 de maio de 2009

Desabilitanto o Touchpad automáticamete ao digitar

Passei muita raiva quando começava a digitar alguma coisa e ao esbarrava no Touchpad ele avacalhava tudo. Pois ao pesquisar na net encontrei uma solução muito boa, de primeira não funciou mas depois eu mesclei duas dicas e deu certo.

Aqui deixo a dica de como funcionou no meu caso. Utilizo Ubuntu 9.04 mas creio que sirva para diversas versões linux

Edite o arquivo /etc/X11/xorg.conf
$ sudo /etc/X11/xorg.conf

adicione ou localize as linhas:

Section "InputDevice"
Identifier "touchpad"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "on"
Option "SHMConfig" "on"
EndSection

O importante e o drive do mouse ser "synaptics" e a opção "SHMConfig" está habilitada com o "on" Localize a seção "Section Module" e acrescente a opção: Load "synaptics"

Caso tenha adicionado as linhas: Section "InputDevice" ... Coloque também em Section "Server Layout" a opção: InputDevice "touchpad" "AlwaysCore"

Ficando assim:
Section "ServerLayout" Identifier "aticonfig Layout"
Screen 0 "Default Screen"
InputDevice "touchpad" "AlwaysCore"
EndSection

Depois é só ir no menu Sistema -> Preferências -> Aplicativos de sessão Adicione um novo, coloque o nome como desabilitar touchpad e em comando coloque:

syndaemon -i 1

Reinicie o modo gráfico apertando Crl + Alt + backspace ou indo no menu de desligar e selecionar sair. Faça um teste digitando alguma coisa e logo em seguida tentando mecher o mouse. O mouse para por 1 segundo sempre que você digita alguma coisa. O mesmo não acontece com o mouse USB. Para mim isso é perfeito.

Abaixo o meu Xorg completo:


Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "InputDevice"
Identifier "touchpad"
Driver "synaptics"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "Emulate3Buttons" "on"
Option "SHMConfig" "on"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 24
EndSection

Section "Module"
Load "glx"
Load "composite"
Load "aixgl"
Load "xgl"
Load "synaptics"
EndSection

Section "ServerLayout"
Identifier "aticonfig Layout"
Screen 0 "Default Screen" 0 0
InputDevice "touchpad" "AlwaysCore"
EndSection

Section "Device"
Identifier "Configured Video Device"
BusID "PCI:1:5:0"
Driver "ati"
Option "VideoOverlay" "off"
Option "OpenGLOverlay" "on"
Option "TexturedVideo" "off"
EndSection

quarta-feira, 8 de abril de 2009

Warhammer o melhor dos jogos de estratégia

Para quem gosta de jogos de estratégia esse jogo é o melhor na minha opinião
Um jogo futurista com uma história muito interessante com 9 raças únicas.


Nesse blog tem muitas informações sobre o jogo e um clã de jogadores warhammer

sábado, 4 de abril de 2009

Guansoft - Empresa Júnior

Está no ar o site da Guansoft - Empresa Júnior da PUC Minas em Guanhães da qual sou atualmente Diretor Financeiro.

A Guansoft é uma empresa formada pelos alunos do curso de sistemas de informação com muitas idéias promissoras.

Entre eles está um projeto para desenvolver um software de gestão de currículos on-line em licença GPL para a própria empresa e para divulgação dos alunos.
Através desse projeto iremos montar um grupo de estudo PHP-Javascript aproximando-nos dos alunos e praticando a ciência estudada no curso.


entre no site: http://www.guansoft.com.br

sábado, 7 de março de 2009

Configurando uma rede ad-hoc no Windows XP sem programas






Após apanhar um pouco descobri uma maneira interessante de se compartilhar internet entre dois notebooks no windows xp sem necessidade de instalar qualquer programa. Isso foi feito utilizando o Windows XP service pack 2


Muito bem vamos nessa:

Entre nas configurações de rede em iniciar>meus locais de rede (botao direito > propriedades)



Clique com o botao direito e em cima da rede wireless e vá em propriedades

Selecione a aba Redes sem fio e clique em avançado.

Marque a opção: Apenas redes de computador a computador (ad hoc)

Clique em ok.

Na mesma aba Redes sem Fio clique em adicionar repare que a opção "Esta é uma rede de computador a computador (ad hoc)... " vai estar marcada e cinza

Digite o nome da rede em "Nome da rede (SSID)". Este é o nome que irá aparecer ao scannear a rede

Desmarque a opção "Chave fornecida automaticamente"

Digite a chave no local especificado e confirme-a (A chave tem que ter uns 5 caracteres exatamente). Dê ok

Sua rede ad-hoc está criada

Agora vá no outro notebook e procure a rede sem fio normalmente que ela irá aparecer com um icone de dois notebook. Forneça a chave que escolheu anteriormente e pronto
Na proxima publicação irei ensinar como compartilhar a rede entre dois computadores windows uma continuação desse tutorial.

Até

Instalando drivers no Linux: Placa wireless Atheros para notebooks


Introdução

Apesar do suporte a hardware das distribuições estar aumentando constantemente, uma hora ou outra temos que instalar um driver de um hardware em específico, um exemplo é a placa de rede Atheros AR242x ou outros modelos, que apesar de vir com driver no Ubuntu Linux, este não funciona.

Baixar e compilar o driver não é um bicho de sete cabeças e como verá é realmente muito simples.

Um driver no Linux, assim como em qualquer outro sistema operacional, é a chave para acessar o dispositivo. Pense nessa chave como um manual de instruções que diz ao sistema como usar o hardware.

Usuários do Windows estão acostumados com os arquivos .inf e com a palavra "driver". Quando estamos usando sistemas baseados em Unix como o Linux, chamaremos driver de "módulo".

Um módulo no Linux é um pedaço do kernel.

Se a palavra kernel é grego para você, saiba que kernel é o núcleo, o cérebro de um sistema operacional, é ele quem entra em contato direto com sua máquina e provê recursos para os outros programas como memória, acesso ao disco, acesso a placa de vídeo, de som etc. O Windows também tem um kernel, o Solaris, o DOS e qualquer outro SO (Sistema Operacional).

O kernel do Linux possui uma enorme vantagem sobre o kernel de outros sistemas: ele está acessível a qualquer mortal que seja curioso e estude bastante!

Isso faz com que drivers sejam desenvolvidos mesmo sem suporte dos fabricantes, um trabalho duro que muita gente tem feito, há uma comunidade muito forte neste sentido.

Aqui cabe a mim descrever uma diferença entre Linux e GNU/Linux: com certeza você usa GNU/Linux e não Linux! Linux é o kernel do sistema.

GNU é um projeto de software livre que se juntou ao Linux para formar um SO. Como você não vive só com o kernel, precisa de um editor de textos, de um programa para cópia de arquivos, um navegador etc.

Para mais informações acesse GNU.org e GNU - Wikipédia.

Agora que você já sabe o que é um módulo, vamos ao que interessa: instalar um!


Identificando o seu hardware

Existe um utilitário muito bom para isso, simples e direto. Digite em um terminal:

$ lspci

Caso você não tenha-o instalado, o que é muito difícil pois quase todas as distribuições Linux o trazem, mas por exemplo o Debian na instalação minima não o tem, o nome do pacote para instalação é pciutils.

Debian:

# apt-get install pciutils

Abaixo a saída em meu notebook LG R405:
Linux: comando lspci
Podemos ver que eu tenho um HD sata, uma placa de áudio Intel HDA, uma placa de vídeo Radeon Xpress 1250, uma placa de rede da Marvell e uma placa de rede Wireless Atheros AR242x, que será o nosso alvo para instalação.

Podemos verificar os módulos carregados em memória através do utilitário lsmod:
Linux: comando lsmod
Agora que já sabemos qual é o nosso hardware, vamos procurar o driver e instalá-lo.

O melhor lugar para procurar drivers, ou melhor, módulos para Linux, é no Google. Na pesquisa use a palavra driver mesmo, que é mais comum, mas você já sabe falar corretamente, pode dar uma de nerd ;-) (leia a introdução deste artigo para mais informações).

Peraí, o site do fabricante não é um bom lugar? Sim, mas em muitos casos você não vai encontrar nada lá.

Os fabricantes em sua maioria não apóiam o desenvolvimento de drivers para Linux, isso pode parecer um ponto fraco só do Linux, mas hoje em dia alguns fabricantes não fazem drivers nem para XP, só para o Windows Vista. Heroicamente linuxistas criam seus próprios drivers e disponibilizam para comunidade, já viu algum usuário, mesmo avançado, do Windows fazer isso?

Mas a boa notícia é que bons fabricantes tem desenvolvido seus drivers para Linux, ou mesmo abrindo suas especificações para que comunidades de usuários possam desenvolver módulos melhores e compatíveis com todos os recursos. É o caso da fabricantes de notebooks Dell, que possui drivers em seu site tanto para Windows quanto para Linux.

Se você possui a placa wireless Atheros vou lhe poupar esforço e lhe dizer que existe um driver sendo desenvolvido por uma comunidade de usuários que suporta quase todos os modelos dessa placa. Acesse o site do projeto madwifi e baixe a última versão do driver.

Após baixar o driver não coloque-o na área de trabalho, em algumas versões do Ubuntu onde o caminho para área de trabalho é "Área de trabalho" e não "Desktop" isso gerou problemas na compilação do driver. Sugiro manter salvo na sua pasta pessoal mesmo.


Instalar driver madwifi

Descompacte o driver com o seguinte comando:

$ tar -zxvf madwifi-hal-*

Onde * é o restante do nome do arquivo, que pode variar conforme a versão.

Se você baixou um arquivo bzip2, cujo a extensão é .bz2, troque o "z" do comando por um "j", ficando assim:

$ tar -jxvf madwifi-hal-*

Explicando o comando:

"tar" descompacta arquivos que estão agrupados com esse algorítimo (extensão para os leigos geralmente .tar), porém nossos arquivos não são compactados com o tar, são apenas agrupados em um só, o tar junta vários arquivos em um único, quem compacta na verdade é o gzip ou bzip2, daí a extensão ser .tar.gz ou .tar.bz2.

Para que não seja necessário descompactar e depois "desagrupar" nosso arquivo em dois comandos, nós simplesmente dizemos ao tar que nosso arquivo está compactado no formado gzip (parâmetro "z") ou bzip2 (parâmetro "j"), logo em seguida dizemos que queremos extrair o conteúdo (parâmetro "x"), mostrar na tela o que esta acontecendo (parâmetro "v") e por último mas importante dizemos que estamos descompactando para um arquivo e não para a tela (parâmetro "f").

Bom, se apareceu um monte de arquivo na tela sendo descompactado e foi criada uma pasta chamada "madwifi-algumacoisa" no diretório corrente com todos os arquivos, então tudo bem. Se deu alguma mensagem de erro então ou o arquivo está corrompido ou você usou o parâmetro errado, "z" ao invés de "j" ou vice versa.

Entre na pasta:

$ cd madwifi-"um monte de coisa"

Antes de compilarmos teremos certeza que as ferramentas necessárias estão instaladas:

$ sudo apt-get install build-essential linux-headers-`uname -r`

Ok, compile o driver:

Em alguns programas fonte existe um arquivo que é um script chamado "configure", esse script verifica se o sistema cumpre todas as dependências para compilação do pacote, qual arquitetura do sistema, se existem bibliotecas necessárias etc. Não é o nosso caso, então não vamos precisar executar esse script, mas se fosse o caso, rode esse comando de dentro da pasta fonte:

$ ./configure

Compilar:

$ make

Agora instalar:

$ sudo make install

Legal, o driver está compilado e pronto para ser usado, vamos carregá-lo na memória. Caso ocorra algum erro o mais comum é não ter as ferramentas necessárias para compilar o driver, que são os fontes do kernel e os pacotes gcc, g++, make etc. Em ambientes Debian o apt-get que mostrei resolve esses problemas.

Certa vez não consegui compilar o driver e nem mesmo com os pacotes, baixei a versão mais nova do driver e o problema foi resolvido. Bom, o Google é um ótimo lugar para se resolver problemas!

Em todo caso há 97% de chance de esses passos derem certo. Então vamos continuar...


Ajustes finais

Para carregar um módulo na memória é muito simples:

modprobe "nome-do-modulo"

Em nosso caso:

# modprobe ath-pci

Você pode verificar o módulo carregado com o comando:

$ lsmod

Saída:
Linux: modprobe/lsmod
Pronto, sua placa estará funcionando, agora só alguns ajustes. No Ubuntu desabilite o driver que vem com ele para placas Atheros:

Vá em Sistema > Administração > Drivers de Hardware

E desative esse driver.

Vai pedir para reiniciar, mas não reinicie ainda.

Edite o seguinte arquivo como root:

$ sudo gedit /etc/modules

Adicione a linha:

ath-pci

Como exemplo:
Linux: arquivo /etc/modules
Isso serve para que nosso módulo seja carregado na memória ao reiniciar o computador.


Resumo genérico dos passos executados / conclusões / referências

  • Identificar a placa;
  • Achar o fonte do driver;
  • Descompactá-lo;
  • Entrar na pasta;
  • Instalar os compiladores e o fonte do kernel (chamado dux-headers);
  • Verificar se existe um arquivo chamado configure e executá-lo ./configure;
  • Compilar o driver com o comando "make";
  • Instalar o driver com o comando "make install". Necessário permissão de root;
  • Carregar módulo na memória ;
  • Configurar o arquivo /etc/modules (pode ser outro dependendo da distribuição) com o módulo a ser carregado na inicialização.

Conclusões finais

Instalar um driver no Linux não é uma tarefa "cabulosa", a principal dificuldade pode estar em achar o driver.

Depois de achá-lo sempre há um arquivo que ensina a instá-lo, isso todos os bons programas em código fonte tem e não é diferente dos drivers. Os passos descritos aqui foram retirados do próprio arquivo "INSTALL" do driver. Geralmente os aquivos README e INSTALL possuem informações interessantes e completas sobre a instalação e utilização do programa ou módulo, em sua grande maioria em inglês.

Felizmente o kernel do Linux está evoluindo juntamente com as distribuições e esses problemas estão ficando para trás. Cada vez mais fabricantes dão suporte a Linux e isso é um caminho para liberdade de escolha e para o crescimento do GNU/Linux.

Por favor, deixem suas sugestões e críticas sobre o artigo, isso só faz com que ele melhore. ;-)

Espero ter ajudado.

Referência

http://madwifi.org/
Acessado em 22 de novembro de 2008

O próprio arquivo INSTALL dentro do driver.

Confira também este mesmo artigo no site vivaolinux.com.br Referencia: http://www.vivaolinux.com.br/artigo/Instalando-drivers-no-Linux-Placa-wireless-Atheros-para-notebooks/

quinta-feira, 12 de fevereiro de 2009

Interface Gnome ou XFCE no PUx

Depois de vários testes chegamos a conclusão que faremos a troca do gerenciador de janelas XFCE
pelo Gnome, que estava previsto inicialmente. Isto se deve ao fato de pequenos detalhes relacionados a usabilidade do XFCE - reconhecemos que que XFCE tem muitas vantagens relacionadas à desempenho, otimização de recursos, etc - no entato a familiaridade e a popularidade do Gnome justifica nossa escolha. Além de ser um Gerenciador conhecido com vários programas escritos para suas biblioteca (não que não possamos usar os programas no XFCE), tem uma caracteristica muito boa que é a simplicidade, o que faz com que tenhamos um controle maior sobre o que esta instalado em seu sistema, diferentemente do KDE que tem trezentos browser diferentes (exagerei um pouquinho).

quarta-feira, 19 de novembro de 2008

Retomando o projeto PUX

Estamos retomando o projeto PUx e agora vai sair. Será optado pela criação de um live dvd pela falta de espaço que um live cd apresenta.

Atualmente estamos trabalhando na instalação e configuração de programas de desenvolvimento de sistemas.


A partir de agora esse blog será atualizado com informações sobre esse projeto


Inté...

sexta-feira, 11 de julho de 2008

Verificando problemas no hardware

load average: 0.00, 0.00, 0.00

Como você pode obter esta informação?

Para descobir qual o load da máquina, execute o comando uptime. Este irá lhe mostrar a hora corrente quanto tempo a máquina está ligada, quantos usuários estão logados e o load da máquina.

O que isso significa?

Este número é a média de processos bloqueante na fila de execução durante um certo tempo.

Períodos de tempo:

load average: 1min, 5min, 15min

O que é um processo bloqueante?

Um processo bloqueante é um processo que está esperando por alguma coisa para continuar. Normalmente o processo pode estar esperando por:

* CPU (processador)
* Disk I/O (entrada e saída de disco)
* Network I/O (entrada e saída de rede)

O que um load average muito alto significa?

Um load muito alto pode significar que sua máquina está sub-dimensionada para o trabalho que ela está fazendo (por exemplo um banco de dados), ou que algum dispositivo está com problemas e apresentando falhas (por exemplo um disco externo montado no seu sistema de arquivos). Eu pessoalmente tive problemas com discos que apresentaram erros de leitura.

É bom saber que um valor de load, por exemplo 12.0 pode ser tranquilo para um servidor bem robusto, e um load de 2.0 pode ser intragável para aquele notebook celeron que seu pai usa para jogar paciência. Esses valores vão variar muito de acordo com a arquitetura da máquina.

Como diagnosticar um load average muito alto?

Normalmente uma máquina com um load muito alto fica muito lenta e ás vezes nem responde. Mas como você pode saber o que está causando este comportamento?

Vamos começar com o mais simples, o sistema operacional está esperando por CPU?

Execute o top:
top

Veja os números acima, dentro do círculo vermelho. Basicamente estes são a representação da porcentagem do tempo total de CPU gasto processando alguma coisa.
Se estes números ficam constantemente por volta dos 99-100% então existe uma grande possibilidade de que o problema esteja relacionado ao seu processador, provavelmente ele não está dando conta do recado, considere um upgrade.

A próxima coisa a checar é se o processador (CPU) está esperando I/O (ou E/S - entrada e saída). Verifique os números dentro da área do círculo vermelho. Se este número estiver próximo (ou superior) a 80%, então você tem problemas. Isso significa que o seu processador (CPU) está esperando MUITO tempo por respostas dos dispositivos de E/S (I/O). Isso pode significar que você tem um disco com falhas, uma placa de rede com problemas ou uma aplicação está tentando acessar informações numa taxa muito alta para o seu hardware. Isso é comum em sistemas que fazem muito acesso a disco sobre hardwares de baixa qualidade ou não especificos para determinadas aplicações, como por exemplo utilizar uma máquina desktop como banco de dados, num cenário de uso intenso.

Para descobrir o que está causando este load muito alto, rode o comando (como root):

ps aux

Este irá mostrar todos os processos do seu sistema, e seus respectivos estados.

Verifique a coluna STAT. As flags que você procurar são:

* R - Running (rodando)
* S - Sleeping (dormindo)
* D - Esperando por algo

Procure por processos com a coluna STAT com valor D. A partir desta linha, você pode diagnosticar o problema.

Pouca memória.

Fica atento também as valores de swap utilizados (na saída do comando top, fica logo abaixo do mem que está abaixo do cpu), se o "used" estiver muito alto, pode ser que você necessite de um upgrade de memória. Caso a máquina tenha pouca memória, a memória virtual (partição de swap) vai ser bastante utilizada, o que pode elevar o load da máquina.

Outros diagnósticos.

Para mais diagnósticos você pode utilizar os seguintes programas:

* strace - ferramenta de debugging de chamadas de sistema
* iostat - para verificar a performace/desempenho de discos
* bwmon - para verificar a performance de dispositivos de rede

Baseado em: http://www.andymillar.co.uk/blog/index.php/2006/12/24/geekery/linux-load-average-explained/

quarta-feira, 9 de julho de 2008

PUX linux para programadores

É com orgulho que venho anunciar (se é que alguém vai ler isso :-) o inicio do projeto Pux.
Pux é uma distribuição linux feita pela PUCMINAS com o objetivo de atender aos programadores dos cursos relacionados a computação, e será instalado nos laboratórios da PUC.
Esse projeto não é novo mas agora está sendo ressucitado.
Faço parte da enorme equipe de 3 programadores que está customizando a distribuição. Rsrsss

Nossa equipe:

Cogugas (eu)

Fabio Led (de led zepelin)



Objetivo:

Criar um sistema Linux personalizado pela PUC a ser usado nos laborátorios e em casa para quem assim quiser atendendo aos alunos dos cursos de sistemas de informação e ciencias da computação,
provendo recursos que auxiliem os alunos em tarefas relacionadas a essas áreas do conhecimento.
É importante que seja um sistema leve que rode tanto em máquina modernas como modestas.

Sistema Base:

Um dos objetivos do projeto PUX é a capacidade de rodar com velocidade satisfátoria em máquina de pequeno e médio porte, para tal foi escolhido como base a distribuição linux Xubuntu.
Xubuntu - Ubuntu é o linux mais difundido e amigável da atualidade. Em sua versão Xubuntu possui um Desktop leve e amigavel baseado no gerenciador de janelas XFCE, por sua leveza foi escolhido como base para o sistema PUX em sua versão 8.04


Recursos:

  • IDEs para programação em diversas linguagens
  • Criação de monografias em latex seguindo as normas abnt
  • Diagramas
  • Jogos inteligentes voltados para programadores
  • Editores de Texto, planilhas e apresentações
  • Ferramenta de banco de dados
  • Servidor WEB LAMP
  • Ferramenta para criação de páginas WEB em html visual.
  • Comunicação via rede MSN
  • Navegação WEB com browser Firefox
  • Plugins Java e Flash
  • Suporte a MP3 e outros formatos de música e video
  • Player de Música, e Filmes
  • Suporte a DVD
  • PDF
  • Integração com Active Directory
  • Suporte a Escrita em partições NTFS
  • Curso de Digitação

quarta-feira, 28 de maio de 2008

Programas Interessantes do Ubuntu


Para quem experimenta o Ubuntu, sempre fica a dúvida de qual aplicativo usar para escutar música, ver DVD's ou queimar um CD/DVD.

Aqui vai a lista de aplicativos que eu acho essencial e que sempre irei instalar/atualizar no meu Ubuntu.

Claro que existem dezenas de outras alternativas para cada ação, mas estes aplicativos são os que melhores responderam às minhas expectativas, depois de conhecer o Ubuntu. E esta lista é dinâmica, pois sempre haverão coisas novas e melhores.

Vamos lá!


Avidemux
Editor de vídeo
download: http://www.getdeb.net/app/Avidemux
info: http://ubuntudicas.blogspot.com/2008/01/avidemux-editor-de-vdeo.html

Qdvdauthor

Aplicativo para criar dvds com suporte a subtitulos, menus, etcc....

http://qdvdauthor.sourceforge.net/

VUZE
Torrents
donwload: http://www.vuze.com/app


Emesene
Instant Messenger tipo MSN
info: http://ubuntudicas.blogspot.com/2007/12/emesene-clone-do-msn.html

Exaile
Player de mp3 e CD
download: via Adicionar/Remover Programas...

Frostwire
P2P
download: via Adicionar/Remover Programas...

Gmount-ISO
Leia imagens ISO
download: Via Synaptic
via terminal: sudo apt-get install gmountiso

PyTube
Baixar vídeos do YouTube
info: http://bashterritory.com/pytube/index.php
download

VLC
Player de vídeo divx ou dvd
download: Via Synaptic
info: http://ubuntudicas.blogspot.com/2007/10/vlc-no-mostra-as-legendas.html

Wifi Radar
Buscador de redes wireless
donwload: Via Synaptic
info: http://ubuntudicas.blogspot.com/2008/01/wifi-radar.html

sexta-feira, 23 de maio de 2008

Refinando os logs do Gentoo





From Gentoo Linux Wiki


As it is stated in the Gentoo Security Guide, syslog-ng provides some of the same features as syslog and metalog with a small difference. It can filter messages based on level and content (like metalog), provide remote logging like syslog, handle logs from syslogd (even streams from Solaris), write to a TTY, execute programs, and it can act as a logging server. Basically it is the best of both loggers combined with advanced configuration.










Quick Start


First, you have to emerge syslog-ng and add it to the default runlevel. If you want to start syslog-ng just now, execute the init script. Also, it is recomended to unmerge any system logger you have previously installed as loggers often use /dev/log (see this thread):


# emerge -av syslog-ng
# rc-update add syslog-ng default
# /etc/init.d/syslog-ng start

Also, you may want logrotate to rotate your logs


# emerge -av logrotate

For a quick start, here there is a classic configuration file slightly modified from Gentoo Security Guide.






File: /etc/syslog-ng/syslog-ng.conf




# /etc/syslog-ng/syslog-ng.conf
# From the Gentoo Linux Security Guide
# http://www.gentoo.org/doc/en/gentoo-security.xml
# Creative Commons - Attribution / Share Alike License
# http://creativecommons.org/licenses/by-sa/2.0

options { chain_hostnames(off); create_dirs (yes); sync(0); stats(43200); };

#source where to read log
source src { unix-stream("/dev/log"); internal(); };
source kernsrc { file("/proc/kmsg"); };

#define destinations
destination authlog { file("/var/log/auth.log"); };
destination syslog { file("/var/log/syslog"); };
destination cron { file("/var/log/cron.log"); };
destination daemon { file("/var/log/daemon.log"); };
destination kern { file("/var/log/kern.log"); };
destination lpr { file("/var/log/lpr.log"); };
destination user { file("/var/log/user.log"); };
# Should be maillog (Without dot) as it was the default on logwatch
destination mail { file("/var/log/maillog"); };

destination mailinfo { file("/var/log/mail.info"); };
destination mailwarn { file("/var/log/mail.warn"); };
destination mailerr { file("/var/log/mail.err"); };

destination newscrit { file("/var/log/news/news.crit"); };
destination newserr { file("/var/log/news/news.err"); };
destination newsnotice { file("/var/log/news/news.notice"); };

destination debug { file("/var/log/debug"); };
destination messages { file("/var/log/messages"); };
destination console { usertty("root"); };
destination console_all { file("/dev/tty12"); };
destination xconsole { pipe("/dev/xconsole"); };

#create filters
filter f_auth { facility(auth); };
filter f_authpriv { facility(auth, authpriv); };
filter f_syslog { not facility(authpriv, mail); };
filter f_cron { facility(cron); };
filter f_daemon { facility(daemon); };
filter f_kern { facility(kern); };
filter f_lpr { facility(lpr); };
filter f_mail { facility(mail); };
filter f_user { facility(user); };
filter f_debug { not facility(auth, authpriv, news, mail); };
filter f_messages { level(info..warn)
and not facility(auth, authpriv, mail, news); };
filter f_emergency { level(emerg); };

filter f_info { level(info); };
filter f_notice { level(notice); };
filter f_warn { level(warn); };
filter f_crit { level(crit); };
filter f_err { level(err); };
filter f_failed { match("failed"); };
filter f_denied { match("denied"); };

#connect filter and destination
log { source(src); filter(f_authpriv); destination(authlog); };
log { source(src); filter(f_syslog); destination(syslog); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_daemon); destination(daemon); };
log { source(kernsrc); filter(f_kern); destination(kern); };
log { source(src); filter(f_lpr); destination(lpr); };
log { source(src); filter(f_mail); destination(mail); };
log { source(src); filter(f_user); destination(user); };
log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };
log { source(src); filter(f_mail); filter(f_warn); destination(mailwarn); };
log { source(src); filter(f_mail); filter(f_err); destination(mailerr); };

log { source(src); filter(f_debug); destination(debug); };
log { source(src); filter(f_messages); destination(messages); };
log { source(src); filter(f_emergency); destination(console); };

#default log
log { source(src); destination(console_all); };




You will see your defined log files in /var/log. In the following sections we will explain this configuration file in order to understand how syslog-ng works.


Sources


Syslog-ng receives log messages from a source. To define a source you should follow the following syntax:


source <identifier> { source-driver(params); source-driver(params); ... };


You can look at the identifiers and source-drivers in the manuals. This will follow the manual to explain the configuration file above.

The unix-stream() source-driver opens the given AF_UNIX socket and starts listening on it for messages. The internal() source-driver gets messages generated by syslog-ng.
Therefore,


source src { unix-stream("/dev/log"); internal(); };

Means: src gets messages from /dev/log socket and syslog-ng.

The kernel sends log messages to /proc/kmsg and the file() driver reads log messages from files. Therefore:


source kernsrc { file("/proc/kmsg"); };

Means: kernsrc gets messages from file /proc/kmsg

In the default configuration file after emerging syslog-ng, the source is defined as:


source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); };

Reading messages by pipe("/proc/kmsg") gives a better performance but because it opens its argument in read-write mode can be a security hazard as the syslog-ng admin guide states in section 7.1.6:


Pipe is very similar to the file() driver, but there are a few
differences, for example pipe() opens its argument in read-write
mode, therefore it is not recommended to be used on special files
like /proc/kmsg." (You can follow this discussion in this post.)

Destinations



syslog-ng sends log messages to files. The syntax is very similar to sources:


destination <identifier> {destination-driver(params); destination-driver(params); ... };

You will be normally logging to a file, but you could log to a different destination-driver: pipe, unix socket, TCP-UDP ports, terminals or to specific programs. Therefore:


destination authlog { file("/var/log/auth.log"); };

Means sent authlog messages to /var/log/auth.log

usertty() sends messages to the terminal of the specified user, if the user is logged in. Then:


destination console { usertty("root"); };

Sends console messages to root's terminal if it is logged in.

pipe() sends messages to a pipe /dev/xconsole. Then:


destination xconsole { pipe("/dev/xconsole"); };

Sends xconsole messages to the pipe /dev/xconsole. This needs some more configuration, so you could look at the sub-section xconsole below.

udb() sends on the network


destination remote_server { udp("10.0.0.2" port(514)); };

this will send your log data out to a another server


xconsole



ATTENTION: this part is not yet finished.
You can look and contribute at this thread discussing the topic,
and have a look at this explanation
.

syslog-ng can send messages to the pipe /dev/xconsole. You should create it with mkfifo, giving the appropriate access and owner permissions:


# mkfifo /dev/xconsole
# chmod 644 /dev/xconsole
# chown root.tty /dev/xconsole

Afterwards, you need a program to read the messages sent to /dev/xconsole. xconsole is a console that monitors system messages with X. Frist step is to emerge xconsole:


emerge -av xconsole

And tell xconsole to read /dev/xconsole



# xconsole -file /dev/xconsole

You can modify the text window space editing /usr/share/X11/app-defaults/XConsole:


*text.width: 900
*text.height: 100

And the geometry:


xconsole -file /dev/xconsole -geometry +67+640

Creating Filters for Messages



Syntax for the filter statement:


filter <identifier> { expression; };

Functions can be used in the expression, such as the fuction facility() which selects messages based on the facility codes (look at the sub-section below for a list of facility codes). Therefore, the filter


filter f_auth { facility(auth); };

filters those messages coming from authorisation, like:


May 11 23:42:31 mimosinnet su(pam_unix)[18569]: session opened for user root by (uid=1000)


Expression can use the boolean operators and, or, not, so the filter:


filter f_debug { not facility(auth, authpriv, news, mail); };

selects those messages not coming from authorisation, network news or mail.

The funciont level() selects messages based on its priority level, therefore:


filter f_info { level(info); };

selects informational levels.

Functions and boolean operators can be combined in more complex expressions like:


filter f_messages { level(info..warn)
and not facility(auth, authpriv, mail, news); };

that filters messages with a priority level from informational to warning not coming from atuh, authpriv, mail and news facilities.

Messages can also be selected by matching a regular expression in the message with the function match(regexp). For example:


filter f_failed { match("failed"); };

Facilities and log-levels


The linux kernel has a few facilities you can use for logging. Each facility has a log-level; where debug is the most verbose, and panic only shows serious errors. You can find the facilities, log levels and priority names in /usr/include/sys/syslog.h:






File: /usr/include/sys/syslog.h




/* facility codes */
#define LOG_KERN (0<<3) /* kernel messages */
#define LOG_USER (1<<3) /* random user-level messages */
#define LOG_MAIL (2<<3) /* mail system */
#define LOG_DAEMON (3<<3) /* system daemons */
#define LOG_AUTH (4<<3) /* security/authorization messages */
#define LOG_SYSLOG (5<<3) /* messages generated internally by syslogd */
#define LOG_LPR (6<<3) /* line printer subsystem */
#define LOG_NEWS (7<<3) /* network news subsystem */
#define LOG_UUCP (8<<3) /* UUCP subsystem */
#define LOG_CRON (9<<3) /* clock daemon */
#define LOG_AUTHPRIV (10<<3) /* security/authorization messages (private) */
#define LOG_FTP (11<<3) /* ftp daemon */
/* other codes through 15 reserved for system use */
#define LOG_LOCAL0 (16<<3) /* reserved for local use */
#define LOG_LOCAL1 (17<<3) /* reserved for local use */
#define LOG_LOCAL2 (18<<3) /* reserved for local use */
#define LOG_LOCAL3 (19<<3) /* reserved for local use */
#define LOG_LOCAL4 (20<<3) /* reserved for local use */
#define LOG_LOCAL5 (21<<3) /* reserved for local use */
#define LOG_LOCAL6 (22<<3) /* reserved for local use */
#define LOG_LOCAL7 (23<<3) /* reserved for local use */

#ifdef SYSLOG_NAMES
CODE facilitynames[] =
{
{ "auth", LOG_AUTH },
{ "authpriv", LOG_AUTHPRIV },
{ "cron", LOG_CRON },
{ "daemon", LOG_DAEMON },
{ "ftp", LOG_FTP },
{ "kern", LOG_KERN },
{ "lpr", LOG_LPR },
{ "mail", LOG_MAIL },
{ "mark", INTERNAL_MARK }, /* INTERNAL */
{ "news", LOG_NEWS },
{ "security", LOG_AUTH }, /* DEPRECATED */
{ "syslog", LOG_SYSLOG },
{ "user", LOG_USER },
{ "uucp", LOG_UUCP },
{ "local0", LOG_LOCAL0 },
{ "local1", LOG_LOCAL1 },
{ "local2", LOG_LOCAL2 },
{ "local3", LOG_LOCAL3 },
{ "local4", LOG_LOCAL4 },
{ "local5", LOG_LOCAL5 },
{ "local6", LOG_LOCAL6 },
{ "local7", LOG_LOCAL7 },

* priorities (these are ordered)
*/
#define LOG_EMERG 0 /* system is unusable */
#define LOG_ALERT 1 /* action must be taken immediately */
#define LOG_CRIT 2 /* critical conditions */
#define LOG_ERR 3 /* error conditions */
#define LOG_WARNING 4 /* warning conditions */
#define LOG_NOTICE 5 /* normal but significant condition */
#define LOG_INFO 6 /* informational */
#define LOG_DEBUG 7 /* debug-level messages */

CODE prioritynames[] =
{
{ "alert", LOG_ALERT },
{ "crit", LOG_CRIT },
{ "debug", LOG_DEBUG },
{ "emerg", LOG_EMERG },
{ "err", LOG_ERR },
{ "error", LOG_ERR }, /* DEPRECATED */
{ "info", LOG_INFO },
{ "none", INTERNAL_NOPRI }, /* INTERNAL */
{ "notice", LOG_NOTICE },
{ "panic", LOG_EMERG }, /* DEPRECATED */
{ "warn", LOG_WARNING }, /* DEPRECATED */
{ "warning", LOG_WARNING },




Log Paths


syslog-ng connects sources, filters and destinations with log statements. The syntax is:


log {source(s1); source(s2); ...
filter(f1); filter(f2); ...
destination(d1); destination(d2); ...
flags(flag1[, flag2...]); };

For example:


log { source(src); filter(f_mail); filter(f_info); destination(mailinfo); };


Sends messages from 'src' source to 'mailinfo' destination filtered by 'f_info' filter.


Tips and Tricks


After understanding the logic behind syslog-ng, many possible and complex configuration are possible. Here there are some examples.


[edit] Move log to another file



in order to move some log from messages to another file:


#sshd configuration
destination ssh { file("/var/log/ssh.log"); };
filter f_ssh { program("sshd"); };
log { source(src); filter(f_ssh); destination(ssh); };

Configuring as a loghost


Configuring your system to be a loghost is quite simple.
Drop the following into your configuration, and create the needed directory.






File: /etc/syslog-ng/syslog-ng.conf




source net { udp(); };
destination remote { file("/var/log/remote/$FULLHOST"); };
log { source(net); destination(remote); };



With this simple configuration, log filenames will be based on the FQDN of the remote host, and located in; /var/log/remote/

After creating the remote directory, reload your syslog-ng.configuration.


Use pipe("/proc/kmsg") or file("/proc/kmsg")



In the default configuration file after emerging syslog-ng, the source is defined as:


source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); };

It is not clear if we should use pipe("/proc/kmsg") or file("/proc/kmsg")- As the syslog-ng admin guide states in section 7.1.6:


Pipe is very similar to the file() driver, but there are a few
differences, for example pipe() opens its argument in read-write
mode, therefore it is not recommended to be used on special files
like /proc/kmsg."

(You can follow this discussion in this post.


Improve Performance



syslog performance can be improved in different ways:


Avoid redundant processing and disk space with flag(final)


A single log message can be sent to different log files several times. For example, in the initial configuration file, we have the following definitions:


destination cron { file("/var/log/cron.log"); };
destination messages { file("/var/log/messages"); };
filter f_cron { facility(cron); };
filter f_messages { level(info..warn)
and not facility(auth, authpriv, mail, news); };
log { source(src); filter(f_cron); destination(cron); };
log { source(src); filter(f_messages); destination(messages); };

The same message from the 'cron' facility will end up in both the cron.log and messages file. To change this behavior we can use the final flag, ending up further processing with the message. Therefore, in this example, if we want messages from the 'cron' facility not ending up in the messages file, we should change the cron's log sentence by:


log { source(src); filter(f_cron); destination(cron); flags(final); };

Postgresql Destination


Some of this information was obtained from http://www.kdough.net/docs/syslog_postgresql/.

Please note that this is a work in progress. For one, psql never gets killed when you restart syslog-ng. I just got this going today, so I haven't had a chance to look into it. For another, there are security implications.

Also, I'm still debating with myself whether there's really value in putting syslog logs into an RDBM.


[edit] syslog-ng-pgsql-pipe.sh



The following file can reside in /usr/local/sbin/syslog-ng-pgsql-pipe.sh


#!/bin/bash
#
# File: syslog-ng-pgsql-pipe.sh
#
# Take input from a FIFO and run execute it as a query for
# a PostgreSQL database.
#
# IMPORTANT NOTE: This could potentially be a huge security hole.
# You should change permissions on the FIFO accordingly.
#

ERROR_CODE=0

if [ -e /var/run/syslog-ng.pgsql.pipe ]; then
while [ -e /var/run/syslog-ng.pgsql.pipe ] && [ "$ERROR_CODE" -ne "143" ]
do
psql -q -h localhost -U syslog syslog < /var/run/syslog-ng.pgsql.pipe
/usr/local/bin/syslog-ng-parse.awk < /var/run/syslog-ng.pgsql.pipe
done
else
mkfifo /var/run/syslog-ng.pgsql.pipe
fi

syslog-ng.conf



#
# SQL logging support
#
destination d_pgsql {
pipe("/var/run/syslog-ng.pgsql.pipe"
template("INSERT INTO logs (host, facility, priority, level, tag, date,
time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG',
'$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n"
)
template-escape(yes)
);
};
# make a filter if you like
# filter postfix {program ("postfix");};
log { source(src); destination(d_pgsql); };

syslog-ng (init.d)


I still can't figure out how to make the psql process die, during a stop or a restart of syslog-ng. pidof returns nothing, when run inside the syslog-ng init script. And using --make-pidfile of start-stop-daemon is almost useless, because it only kills the shell script that start psql, not psql itself.



start()


+ start-stop-daemon --start --background --quiet --exec /usr/local/sbin/syslog-ng-pgsql-pipe.sh
+ echo `pidof psql` > /var/run/syslog-ng-pgsql-pipe.pid
start-stop-daemon --start --quiet --exec /usr/sbin/syslog-ng ${SYSLOG_NG_OPTS}

[edit] stop()



  start-stop-daemon --stop --quiet --pidfile /var/run/syslog-ng.pid
+ start-stop-daemon --stop --quiet --pidfile /var/run/syslog-ng-pgsql-pipe.pid

PostgreSQL


In order for this to work, you're going to need a TRUST rule in pg_hba.conf, or a password, for the syslog user. There's obviously security implications for this, if you're using a TRUST rule. Although INSERTS into syslog will be possible, reads/modifications of existing log entries will not be. If you use a password, you may be able to restrict the init script to root access only. I'm not sure if that will work though. I'll have to try it. :) Alternatively, you can use the ~/.pgpass file to supply the credentials. See the reference, http://www.postgresql.org/docs/current/interactive/libpq-pgpass.html

~/.pgpass


hostname:port:database:username:password


su - postgres
createdb syslog
psql -h localhost -U postgres syslog
CREATE USER syslog WITH PASSWORD 'syslogXXXXXXX';
CREATE TABLE logs (
host varchar(32) default NULL,
facility varchar(10) default NULL,
priority varchar(10) default NULL,
level varchar(10) default NULL,
tag varchar(10) default NULL,
date date default NULL,
time time default NULL,
program varchar(15) default NULL,
msg text,
seq serial,
PRIMARY KEY (seq)
);
GRANT INSERT ON logs TO syslog; # security so people can't update the logs

[edit] Links





























quarta-feira, 21 de maio de 2008

10 coisas que podemos fazer com linux e não podemos com outros sistemas

Artigo Citado no VivaLinux.com.ar.
Original aqui.

Cada sistema possui particularidades que o fazem um sistema único. Os usuários possuem necessidades diferentes e não existe um sistema que seja perfeito para todos. O Linux é um excelente sistema em muitos aspectos e possui características que o fazem o melhor sistema em determinados aspectos. A seguinte lista é uma seleção de 10 destas características (muito boas) que o fazem diferente de outros sistemas operacionais. A ordem dos itens não importa, já que todas juntas dão ao Linux a essência de ser rápido, seguro, bonito e livre.

1 - Obter e manter atualizado um sistema completo legalmente sem pagar nada. A maioria das distribuições de Linux são completamente gratuitas, e em alguns custam uma quantidade muito pequena em comparação ao preço do Windows. Isso ocorre em função de suporte e de alguns produtos próprios da empresa.

2 - Poder rodar diferentes interfaces gráficas caso você não goste da que veio por padrão ou por ela não se adequar as suas necessidades. Há interfaces gráficas para todos os gostos, leves, inovadoras, capazes de imitar outras, muito atrativas, etc. Só em Linux contamos com essa variedade de interfaces, e como se fosse pouco, cada uma delas é completamente personalizável. Inclusive, há a possibilidade de trabalhar em modo texto e realizar muitas tarefas comuns, como escutar música, trocar mensagens, navegar na internet, baixar arquivos e várias coisas mais.

3- Ter total controle sobre o hardware do computador e saber que não há backdoors no meu software, colocados por companhias de software mal-intencionadas. Por ser um sistema GNU/Linux composto em sua maioria por software livre, o código está disponível para quem quiser vê-lo, por isso é possível assegurar-se que cada aplicação faz somente o que deve fazer.

4 - Não sentir falta de desfragmentar o disco-rígido, nunca. Os sistemas de arquivos utilizados pelo Linux não se fragmentam, já que foram planejados como sistema multi-usuários, armazenando os dados no disco de maneira seqüencial, por isso é raro se fragmentar um arquivo se o disco não estiver muito cheio.

5 - Experimentar diferentes programas, decidir os que não gosto, desinstalá-los e saber que não há lixo em um registro que pode deixar minha máquina lenta. Não acontece como no sistema da Microsoft que o registro sempre se enche de lixo e se estraga, ocasionando a necessidade de várias formatações anuais.

6 - Usar o SO sem necessidade de usar antivírus nem nenhum outro tipo de software anti-malware e não precisar reiniciar meu computador durante meses, sempre que pego as últimas atualizações de segurança. Com se fala em todo lugar: Linux é muito seguro e estável.

7 - Personalizar o que quiser, legalmente, incluindo meus programas favoritos. Eu posso perguntar aos mantenedores, propor idéias e participar do processo de desenho e programação do software que quiser. Estas são algumas das maravilhas do software livre, por que isso não se aplicar somente o Linux, mas também a toda a aplicação e projeto de software que de desenvolva sobre esta filosofia. Com o Software Livre, o software de nosso PC é realmente nosso.

8 - Usar o mesmo hardware durante mais de 5 anos até que realmente precise substituí-lo. Eu disse milhões de vezes nesse blog: Uma das mais grandes maravilhas do Linux é poder usar um sistema não pré-histórico em equipamentos com baixos recursos, em muitos casos considerados obsoletos (como exemplo, veja o Pentium II que graças ao Linux pode acompanhar-me por 7 anos como meu principal ferramenta de trabalho).

9 - Receber ajuda de centenas de usuários, especialistas e novatos de maneira gratuita e
desinteressada.
Um dos pontos mais fortes do Linux são as comunidades que se formam, ainda que existam o problema dos fanáticos, tem muitos que ajudam da maneira que podem a não deixar que o Linux seja um “sistema difícil” e aos poucos vão levando-o à todos.

10 - Ter um desktop com efeitos espetaculares, e muito superiores ao do Windows Vista em um computador de 3 anos atrás. E isso, a diferença do “Vista Capable” é certa. A atração gráfica do Linux deixou para trás por muito outros sistemas. Só há que melhorar um pouco as capacidades do Compiz Fusion com as do ambientes Enlightenment.

O texto se originou de posts sobre listas de coisas possíveis somente em Linux. Disponíveis aqui, aqui e aqui.

terça-feira, 6 de maio de 2008

Squid com Autenfificação Active Directoy

Esse é um roteiro simples e objetivo de como fazer a coisa acontecer. Não entro em detalhes porque estou sem tempo:

  • Instale o samba com suporte a AD pelo winbind, Compile ou use gentoo :-) Utilizando o gentoo ficaria:
/etc/make.conf

USE="samba pam ldap kerberos winbind"

emerge samba

gateway ~ # emerge samba

  • Instale o squid com suporte a autentificação ntlm compile ou use gentoo
  • Configure o kerberos em /etc/krb5.conf (há um exemplo no blog)
  • Configure o samba (há um exemplo no blog)
  • Inicie o servidor samba
  • Inicie o winbindd
  • Adicione o samba no dominio AD: gateway ~ # net rpc join soed -S domai1 -Uadministrator
  • Teste com o comando: gateway ~ # wbinfo -t
  • Confira os usuarios do dominio com o comando: gateway ~ # wbinfo -u
  • Configure o squid (há um exemplo no blog, substitua o caminho do ntlm_auth pelo caminho correto)

Ok Esse é o roteiro