preload

dez 18

Hello LostManiacos,

A AXN no período de 9 de janeiro à 7 de fevereiro nos finais de semana a partir das 9hrs fará uma maratona da até a 5ª temporada de lost para preparar os fãs para a 6ª temporada que terá sua estreia em 9 de fevereiro às 21hrs. Veja abaixo as datas:

1ª Temporada: Dias 09 de janeiro, sábado, das 09h às 20h30; e 10 de janeiro, domingo, das 09h00 às 21h30.
2º Temporada: Dias 16 de janeiro, sábado, das 09h às 20h30; e 17 de janeiro, domingo, das 09h às 20h30.
3º Temporada: Dias 23 de janeiro, sábado, das 09h às 19h30; e dia 24 de janeiro, domingo, das 09h às 20h30.
4ª Temporada: Dias 30 de janeiro, sábado, das 09h às 15h30; e dia 31 de janeiro, das 09h às 15h30.
5ª Temporada: Dias 06 de fevereiro, das 09h às 16h30; e dia 07 de fevereiro, domingo, das 09h às 17h30.
  • 1ª Temporada: Dias 09 de janeiro, sábado, das 09h às 20h30; e 10 de janeiro, domingo, das 09h00 às 21h30.
  • 2º Temporada: Dias 16 de janeiro, sábado, das 09h às 20h30; e 17 de janeiro, domingo, das 09h às 20h30.
  • 3º Temporada: Dias 23 de janeiro, sábado, das 09h às 19h30; e dia 24 de janeiro, domingo, das 09h às 20h30.
  • 4ª Temporada: Dias 30 de janeiro, sábado, das 09h às 15h30; e dia 31 de janeiro, das 09h às 15h30.
  • 5ª Temporada: Dias 06 de fevereiro, das 09h às 16h30; e dia 07 de fevereiro, domingo, das 09h às 17h30.

Então: se ligue ;)

Marcadores:
out 22

Hi,

Googleando por aí, encontrei a imagem abaixo com a velocidade média e custo de internet em alguns países. Depois de visualizar a imagem com calma, entendi plenamente porque o Brasil não entrou como um dos países oO

clique na imagem para ampliar…

ps.: PQP… Incrível o Japão!

Marcadores:
ago 27

gravatar.com, este é um ótimo serviço para economizar seu tempo! Quando postamos um comentário em um determinado blog, site ou serviço – em determinadas situações – temos que postar um foto para criar um avatar, o que gera tempo!

O gravatar resolve isso. Os maiores serviços de blog já usam o gravatar. Como funciona: Você criar seu avatar no gravatar.com uma vez somente, posta sua foto e um e-mail. Quando um serviço (blog, sites, forum…) que usa o gravatar.com identifica seu e-mail já posta sua foto e informações no serviço que você está utilizando.

Por exemplo, você está lendo um bom blog no wordpress.com, ao fazer um comentário o wordpress já checa no gravatar.com seu avatar e adiciona sua foto automanticamente.

Todo o processo é simples e rápido. Crie sua conta no gravatar.com e poste comentários nos blogs e fóruns, que o gravatar.com gerencia seu avatar! ;)

Marcadores:
ago 26

Hi,

Depois que começamos a programar “de verdade” (corporativamente ou não… rsrs!), percebemos a necessidade de controlar “as versões” do software em questão. Não simplesmente editando e salvando seus ultimos “codes”. É ai que entra o CVS (Concurrent Versions System).

Imagine você terminar aquele projeto/software e no momento da entrega precisar modificar o código, implementar mais alguma função. Tranquilo! Mas depois, percebe que não era bem aquilo que você queria, era melhor deixar do jeito que estava… iii… Neste caso o CVS controla as versões editadas do seu projeto/software permitindo que você possa acessar os antigos códigos. Ótimo!

Outra situação é você desenvolver um software em conjunto com amigos da faculdade e seu “brother” adicionar alguns trechos de códigos “bugados” e ir passear… o que fazer? Ir no CVS e buscar as versões do código antes de seu “brother” ter feito a m*rda! ;)

O que veremos neste post?

- Instalar e configurar o CVS servidor.
- Alguns comando básicos do CVS cliente no próprio linux.

*** Instalando e configurando o CVS

Para este post usei o Debian Lenny. Let´s go…

~$
~$ sudo apt-get install cvs

Depois de instalado o CVS (neste caso ele instala o servidor e cliente), na versão em questão é a 1.12.13 ele cria um repositório padrão em /srv/cvs.

No nosso exemplo vamos apagar o repositório padrão e criar um novo em /home/cvs.

~$
~$ sudo rm -rf /srv

Agora vamos editar o arquivo de configuração principal do cvs: /etc/cvs-pserver.conf

~$
~$ sudo vi /etc/cvs-pserver.conf

CVS_PSERV_REPOS=”/home/cvs”
CVS_PSERV_LIMIT_MEM=hard
CVS_PSERV_LIMIT_DATA=hard
CVS_PSERV_LIMIT_CORE=0
CVS_PSERV_LIMIT_CPU=hard

Neste arquivo modifique a linha CVS_PSERV_REPOS com o diretório do seu repositório de projetos.

Você pode criar mais de um repositório, usando , (vírgula) entre os diretórios:
CVS_PSERV_REPOS=”/home/cvs,/home/meusprojetos”
Neste caso temos 2 repositórios! ;)

Depois de criado o repositório, vamos criar o diretório e efetuar as devidas permissões.

~$
~$ sudo mkdir /home/cvs
~$ sudo chmod -R 775 /home/cvs
~$ sudo chown root:src -R /home/cvs
~$ sudo chmod g+s /home/cvs

1. Criamos o diretório /home/cvs

2. Damos permissão 775 ao diretório do nosso repositório.

3. Setamos o dono root e grupo src para o diretório.

4. Usando o gid bit para o grupo src, assim, todo o usuário do sistema (/etc/passwd) que estiver no grupo src poderão escrever no diretório.

Pronto! Com estas configurações básicas já podemos executar nosso servidor CVS. Mas… o CVS é um serviço que não roda em standalone, assim, ele usa o inetd para executar o serviço. Vamos, então, adicionar as configs do CVS no inetd:

~$
~$ sudo vi /etc/inetd.conf

Adicione a linha abaixo:
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/sbin/cvs-pserver

~$ sudo /etc/init.d/openbsd-inetd start

Ok! O CVS já está executando via inetd. O CVS usa as portas 2401/tcp e 2401/udp, então – caso necessário -, libere estas portas no seu firewall.

Com o CVS funcionando, vamos criar o base de diretórios e arquivos do nosso repositório em /home/cvs.

~$
~$ cvs -d /home/cvs init

Assim, ele cria o diretório CVSROOT no nosso repositório, contendo as conf necessárias para o mesmo. Vamos ver alguns comandos básicos e como proceder em situações do dia a dia.

Adicionar permissão a um usuário para escrever no repositório:

~$
~$ sudo addgroup usuario src

Conectando remotamente via cvs (no linux/debian):

~$
~$ export CVSROOT=:pserver:usuario@ipdoservidorCVS:/home/cvs
~$ cvs login

Sim, parece estranho. Mas o cliente cvs no linux necessida de uma variável CVSROOT para conectar a um determinado host/servidor. Para simplificar o processo você pode criar a variável CVSROOT no .profile do seu usuário.

Importando um projeto e versionando:

~$
~$ cd /home/bleno/projetos/ListaEncadeada
~$ cvs import ListaEncadeada ProjetoListaEncadeada v1 start

Neste caso, importei o diretório ListaEncadeada usando o nome ProjetoListaEncadeada chamando de versão “v1″. Assim, o diretório local ListaEncadeada foi importado em /home/cvs/ProjetoListaEncadeada no servidor CVS.

O CVS cliente pedirá uma mansagem descritiva sobre seu “import”, você informa a descrição e sai com o um simples :x (by vi editor!).

Vamos supor que depois de 2 dias de trabalho árduo saio a versão “v2″ deste projeto. Para importar a nova versão, conectamos ao servidor CVS como descrito acima e importando a nova versão:

~$
~$ cvs import ListaEncadeada ProjetoListaEncadeada v2

Trabalhando com arquivos no CVS cliente no Linux!

Vamos supor que você está em uma outra máquina e queira um cópia do ProjetoListaEncadeada, simples: conecte-se ao servidor CVS como descrito acima e:

~$
~$ cd /home/outramaquina/projetos
~$ cvs checkout ProjetoListaEncadeada

Assim você tem uma cópia da ultima versão do ProjetoListaEncadeada. Depois de editar o projeto você deseja fazer o upload dos arquivos novos, então:

~$
~$ cvs update

O update faz com que o cvs marque os arquivos locais modificados para depois enviar para o servidor. Depois de marcados com o update:

~$
~$ cvs commit

Pronto, os novos arquivos modificados são enviados para o servidor! Lembre-se que todo o processo usando o CVS cliente deve-se está conectado o CVS servidor.

Suponto que há um novo arquivo “classeNos.java” criado no ProjetoListaEncadeada que você quer adicionar, fazemos:

~$
~$ cvs add classeNos.java

Ah, você lembrou que este novo arquivo não é mais necessário no ProjetoListaEncadeada, fazemos:

~$
~$ rm classeNos.java
~$ cvs remove classeNos.java
~$ cvs commit

Pronto! Desta forma quando alguem que faz parte do ProjetoListaEncadeada der um “checkout” as novas modificações serão replicadas para ele! Rulez!!!

Verificando logs

Conectado ao CVS server via CVS cliente no linux, você pode verificar os logs as versões de um determinado projeto:

~$
~$ cvs log | less

Ele vai mostar o log das ultimas modificações do projeto em questão. O less é para a amostragem ficar mais amigável =)

~$
~$ cvs annotate | less

Mostra as anotações, linha a linha, com detalhes sobre o usuário e data das modificações. Por exemplo, você quer saber quem modificou codificou em 26 de agosto na versão v2 do ProjetoListaEncadeada:

~$
~$ cvs annotade | grep v1 | grep “26-Aug-09″

Ai vai a sua criatividade para filtrar a pesquisa do log.

Para mais comandos do CVS cliente no linux:

~$
~$ cvs –help-commands

Realmente o CVS é show de bola. Atualmente existe o SVN que o Dr. Google utiliza no code.google.com, mas sinceramente, não me adaptei bem (rsrs!). Em breve um post sobre SVN! ;)

Marcadores:
ago 07

Hi,

LAMP: Linux, Apache, MySQL e PHP. Realmente um assunto batido na internet. Decidi fazer este artigo de uma forma simples, mas que deixe um LAMP funcional. Este artigo está baseado em uma Debian Lenny estável!

1. Instalando o Apache

~$
~$ sudo apt-cache search apache2
apache2 – Apache HTTP Server metapackage

Ok, temos o pacote, vamos a instalação:

~$
~$ sudo apt-get install apache2

Depois de instalado o apache está pronto para ser usado, use seu browser de preferência em http://127.0.0.1 e veja a mensagem de “It Works”.

2. Entendendo o básico da configuração do apache2

O apache2 fica instalado em /etc/apache2/. Neste diretório temos os seguintes arquivos e diretórios responsáveis pela configuração do apache2:

apache2.conf: Arquivo principal da configuração do apache2.
envvars: Arquivo resposável pelas variáveis do apache2 no sistema.
httpd.conf: Arquivo para suas configurações locais (pessoais).
ports.conf: Arquivo resposável pela configuração das portas do apache2.
conf.d: Diretório que contem os scripts iniciados com o apache2.
mods-available: Diretório contendo os módulos disponíveis.
mods-enabled: Diretório contendo os módulos usados no momento pelo apache2.
sites-available: Diretório com os scripts de configuração dos “sites” disponíveis.
sites-enabled: Diretório com os “sites” ativos no apache2.

Depois da versão 2.x , o apache vem com o modelo de organização dos arquivos de configuração e “sites” mais eficiente. Com a ídeia de *-available e *-enabled podemos controlar melhor uma maior quantidade de arquivos.

Por exemplo, no diretório mods-available temos todos os módulos disponíveis para serem usados no apache, ou seja, este diretório não é lido (reconhecido pelo apache) em sua inicialização. O diretório mods-enabled sim. Neste diretório – comumente – temos links simbólicos para os módulos que desejamos usar no apache2.

Vamos exemplificar, existe em mods-available um módulo disponível chamado ldap.load (na verdade este é um simples script para o apache2) que habilita o ldap. Para ativar este módulo você só precisa criar um link simbólico no diretório mods-enabled, vejamos:

~$
~$ cd /etc/apache2/
~$ ls mods-available | grep ldap
ldap.load
~$ cd mods-enabled
~$ sudo ln -s ../mods-available/ldap.load ldap.load

Simples, desta forma criamos um link simbólico para o módulo disponível “ldap”.

A configuração de “sites” para o apache2 também segue a mesma linha de raciocínio: *-available para “sites” disponíveis e *-enabled para “sites” que estão em uso!

Vamos a um sites exemplo, quero criar um “site” em nosso servidor com o caminho http://127.0.0.1/meuprojetos/ onde os arquivos de “meusprojetos” estarão em /home/bleno/projetos/meusprojetos/ vejamos:

~$
~$ cd /etc/apache2/sites-available/
~$ sudo cat > meusprojetos
Alias /meusprojetos/ “/home/bleno/projetos/meusprojetos/”
<Directory “/home/bleno/projetos/meusprojetos/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[Ctrl+C]
~$ cd ../sites-enabled/
~$ sudo ln -s ../sites-available/meusprojetos meusprojetos

Pronto, o que fizemos foi criar o arquivo de configuração do “site” meusprojetos e criar (ativar) o arquivo de configuração para o apache2 (em sites-enabled).

Os arquivos de configuração de sites podem ser bem mais complexos que este simples exemplo acima, onde cabe um único post sobre os mesmos. Vas vamos entender este arquivo de configuração simples:

Alias /meusprojetos/ “/home/bleno/projetos/meusprojetos/”

Nesta primeira linda definimos o alias (apelido) do site para o apache2 e o diretório onde está o “site”. Simples.

<Directory “/home/bleno/projetos/meusprojetos/”>

Aqui definimos a tag <Directory …> onde vamos passar as configurações do apache2 para o diretório em questão.

Options Indexes MultiViews FollowSymLinks

Aqui passamos as opções (Options) gerais do diretório onde:

Indexes: Esta diretiva informa ao apache2 que se não encontrar nenhuma arquivo conhecido (html, htm, php e etc… definido em “DirectoryIndex” no apache2.conf), o apache2 cria uma lista dos arquivos existente no diretório atual.
MultiViews: Habilita negociação de conteúdo. Permitindo o envio de um arquivo no idioma do navegador do cliente.
FollowSymLinks: O apache2 vai seguir os links simbólicos para este diretório.

AllowOverride None

O apache2 não vai procurar o arquivo .htaccess para este “site” (diretório).

Order allow,deny
Allow from all

Libera acesso a qualquer máquina para este “site” (diretório).

Apache previamente configurado, é só reiniciar o serviço para ativar as novas configurações. Só para lembrar:

~$
~$ sudo /etc/init.d/apache2 restart

Obs: É possível que o apache retorne um erro como  o abaixo ao reiniciar o serviço:

Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

Como o erro informa, não existe um “nome de dominio” para o servidor, então, ele está assumindo um “ServerName” 127.0.1.1. Para resolver isso, edite seu apache2.conf e adicione o seu “ServerName” (nome do servidor):

~$
~$ vi /etc/apache2/apache2.conf
Adicione a seguinte linha ao seu arquivo de configuração:

ServerName www.nomedoservidor.bla.bla…

Pronto, apache instalado e com uma configuração básica, vamos ao php5. Let´s go…

3. Instalação do php5 para o apache2

Aqui o processo é simples, praticamente automático para a instalação, precisaremos dos seguintes pacotes:

php5
libapache2-mod-php5

Então, instale-os:

~$
~$ sudo apt-get install php5 libapache2-mod-php5

Depois de instalado o php5 se aloja em /etc/php5/ onde temos 2 diretórios: apache2 e conf.d

Para testar o phh5 com o apache2, iremos criar um arquivo em /var/www/ (que é o diretório “base” do apache2… lembra do “It Works”, ele está aqui… é o diretório raiz do apache2) com o nome de teste.php para testar o php5:

~$
~$ cd /var/www/
~$ cat > teste.php
<?php
phpinfo();
?>
[Ctrl+C]

Pronto, criamos o arquivo. Para testar, com seu browser preferido acesse http://127.0.0.1/teste.php, provavelmente vai abrir as configurações atuais do php5.

4. Instalando e configurando o MySQL

Para instalar o MySQL precisaremos dos seguintes pacotes:

mysql-server
mysql-client
php5-mysql

Instalando:

~$
~$ sudo apt-get install mysql-server mysql-client php5-mysql

Depois de instalado o mysql fica alojado em /etc/mysql/ onde temos o arquivo my.cnf que é o arquivo de configuração padrão do banco de dados.

Praticamente a instalação do Apache, PHP5 e MySQL foi abordada até aqui, veremos só algumas dicas:

*** Criando usuário “root” e password para o mysql e acesso externo (remoto):

Acesse seu mysql:

~$
~$ sudo mysql -u root

Crie sua senha e dê permissão para todos os hosts:

mysql> GRANT ALL ON *.* TO ‘root’@'%’ IDENTIFIED BY ’suasenha’;
mysql> flush privileges;
mysql> exit

O % informa que qualquer ip (host) pode se conectar via usuário root.

Agora edite seu arquivo my.cnf:

~$
~$ cd /etc/mysql/
~$ sudo vi my.cnf

Edite a configuração da linha bind-address para:

bind-address = 0.0.0.0

Assim o mysql vai receber conexões de todos os ips e todas as interfaces de rede (caso queira, você pode restringir a que ip o mysql vai receber conexões).

Comente a linha de configuração skip-external-locking com um # na frente do mesmo, para ele “pular o bloqueiro externo”.

Pronto, reinicie os serviçõs, o mysql já estará recendo conexões remotas!

*** Instalando o PhpMyAdmin

O PhpMyAdmin é um ótimo gerenciador do banco de dados MySQL via web feito em php, assim você pode administrar o MySQL de forma simples e via browser. Para instalar, simples:

~$
~$ sudo apt-get install phpmyadmin

Ele fica alojado em /etc/phpmyadmin/ onde contém os seus arquivos de configuração.

Lembre-se de reiniciar o apache2 para efetivar as configurações dos novos pacotes instalados. Teste seu PhpMyAdmin em http://127.0.0.1/phpmyadmin/

Espero que tenha gostado, o Apache, Php e MySQL são assuntos muito extensos, seus arquivos de configuração permitem várias combinações. Existe muito material bom na internet. Pesquise mais sobre os mesmos.

;)

Marcadores:
jul 25

Hi,

Uma dica simples, as vezes temos alguns serviços executando no boot do debian que não achamos necessário, há 3 meios simples de desativá-los:

Modo 1 (não aconselhável):

~$
~$ cd /etc/init.d/
~$ chmod -x serviço
Desta forma você retira a permissão de execução do script no boot, mas desta forma pode gerar efeitos colaterais.

Modo 2 (usando o update-rc.d):

~$
~$ sudo update-rc.d -f serviço remove
Usando o comando update-rc.d consegue-se desativar o serviço de forma segura.

Modo 3 (usando o rcconf):

~$
~$ sudo apt-get install rcconf
~$ sudo rcconf
Este aplicativo – amigável – desativa o serviço de forma segura, recomendo ;)

Espero ter ajudado! ;)

Marcadores:
jul 23

Hi,

Estes dias virtualizei um server linux, distro debian. Depois da configuração básica “ziquei” do ipv6.

O ipv6 estava ativo e ficaria ativo sem uso. Pessoalmente não gosto de nada habilitado (serviço, config…) que o servidor não necessite para executar suas funcionalidades.

Solução: criar um arquivo no modprobe.d, dar permissão de execução e desabilitar os módulos sem uso (ipv6) via alias, vejamos:

~$
~$ cd /etc/modprobe.d/
~$ sudo touch mod_inativos
~$ sudo chmod +x mod_inativos

Agora editamos o arquivo e adicionamos os alias necessários para desabilitar o ipv6:

~$
~$ sudo vi mod_inativos

Adicione as linhas abaixo:

alias net-pf-10 off
alias ipv6 off

Pronto, reinicie o sistema ;)

Marcadores:
jul 10

Hi,

Este artigo tem como objetivo mostrar como instalar o fonte (source) do kernel do freebsd, editá-lo e recompilar o mesmo.

Primeiramente, caso na instalação do freebsd você não tenha instalado o fonte (source), os passos são os seguintes:

~#
~# sysinstall

1. Selecione “Configure”…

2. “Distributions”…

3. Marque “src” (com a tecla “espaço”)…

4. Marque “sys” (ô kernel! :P)…

5. “OK”…

Depois de instalado o kernel, vamos fazer um backup do arquivo de configuração do mesmo e editá-lo…

~#
~# cd /usr/src/sys/i386/conf
~# cp GENERIC JUPITER

“JUPITER” é o nome do servidor (neste caso…), lembre-se de colocar o nome do arquivo de configuração em maiúsculo.

Agora, edite seu arquivo de configuração (não vou me aprofundar à explicação do arquivo, o mesmo é bem comentado e simples de entender…):

~#
~# vi JUPITER

Como você pode ver, o arquivo de configuração é simples de ser entendido. Ou seja, os drivers/módulos que não tem interesse é só comentar com um #

Clique aqui e baixe um exemplo de um arquivo de configuração. obs: este arquivo está praticamente todo comentado, sobrando somente os drivers/módulos básicos para uso do freebsd, aconselho usá-lo somente como consulta.

Depois de editado seu arquivo de configuração, vamos compilar o kernel. Existe 2 formas de recompilar: as versões mais antigas do freebsd usavam o modo “padrão” de compilação por etapas. Já as novas versões (acima de 6.x ~ 7.x) usam um novo modo de compilação por parâmetro (bem mais prático, use o tipo baseado na sua versão do freebsd), vejamos:

[x] Modo “antigo”…

~#
~# /usr/sbin/config JUPITER
~# cd ../compile/JUPITER
~# make depend
~# make
(tome um café… rsrs)
~# make install

Depois de todo o processo, é só reiniciar o S.O.:

~#
~# shutdown -r now

[x] “Novo” modo…

~#
~# cd /usr/src
~# make buildkernel KERNCONF=JUPITER
(tome um café… rsrs)
~# make installkernel KERNCONF=JUPITER

Como senpre, depois do processo…

~#
~# shutdown -r now

Pronto! Seu kernel foi instalado, editado a suas necessidades e recompilado. Espero ter ajudado. ;)

Marcadores:
jun 20

Você já deve ter tido a vontade de criar alguns modelos 3d, não? Criar o “projeto” da casinha do cachorro, da churrasqueira do fundo do quintal ou até mesmo a reforma do muro da frente de sua casa. Tudo era muito complicado, os softwares exigiam horas e horas de estudo, o que não era viável para um simples “projetinho pessoal”.

O google lançou a um tempo o SketchUp. Um software de modelagem 3D para você, ou seja, simples e rápido de manusear. Sincetamente é muito intuitivo criar projetos simples – como os supracitados -, parace até que é produto do Google (rsrsrs).

Também está ganhado mercado com o pessoal profissional. Os arquitetos por profissão estão começando a se adaptar a facilidade do Google SketchUp. Além do simples manuseio, o software não deixa a desejar em projetos mais robustos.

Vale a pena conferir e brincar um pouco com o Google SketchUp.

Marcadores:
jun 17

Hi,

Quota. Usamos quando quremos limitar o uso do espaço em disco a um determinado usuário. O uso de quota previne o uso indevido dos usuários com relação ao espaço em disco, evitando – assim – o esgotamento repentino do espaço de uma determinada partição.

No FreeBSD o sistema de Quota é nativo do sistema, não nessitando instalar nenhum outro aplicativo. Necessário  somente habilitar o recurso no kernel.

Adicione a quota no seu kernel, recompile e habilite o sistema de quotas ao sistema (não me aprofundarei na recompilação do kernel, pois, não é o alvo do post).

~#
~# cd /usr/src/sys/i386/conf
~# vi SEUKERNEL

Adicione a opção de cotas no final do arquivo:
options          QUOTA

Recompile o kernel:
~#
~# cd /usr/src/
~# make buildkernel KERNCONF=SEUKERNEL
~# make installkernel KERNCONF=SEUKERNEL

Habilite o sistema de quotas ao sistema:
~#
~# cd /etc/
~# vi rc.conf

Adicione as linhas abaixo no seu rc.conf
enable_quotas=”YES”
check_quotas=”NO”

Pronto! Com o sistema de quota habilitado vamos definir as configurações nas partições e usuários!

Ah, em check_quotas, neste caso, deixei desabilitado (NO) para optimizar o boot do sistema. O check_quotas, como o próprio nome descreve, serve para checar a integridade dos dados no disco em relação a quota definida em cada usuário. Mas, em um sistema com muitos usuários acaba se tornando uma checagem muito demorado.

Neste exemplo vamos habilitar a partição /home para o uso de quotas. Neste caso, editamos o /etc/fstab e habilitamos o recurso na partição, depois reinicie o sistema.

~#
~# cd /etc/
~# vi fstab

Adicione o parametro “userquota” no /home:
/dev/ad0s1f      /home   ufs   rw,nosuid,userquota   2   2

Reinicie o sistema:
~#
~# shutdown -r now

Depois de reinicar o sistema, execute:

~#
~# quotacheck -a

Com este comando ele cria o arquivo quota.user na raiz de cada partição que você definiu como o sistema de quotas. Este arquivo é resposável pela base de dados das quotas de seus usuários.

O sistema de quotas pode ser configurado de duas formas: por blocos (1KB por bloco) ou inodes (arquivos).  Geralmente usa-se quota por bloco, o que traduz-se no espaço utilizado em disco.

O sistema de quotas também usá dois tipos de limites: o hard e soft. No limite hard, ele não pode ser ultrapassado, ou seja, se você define 50MB de limite hard ao atingir este limite o usuário não poderá mais adicionar dados no disco. Já o limite soft pode ser ultrapassado, por um determinado periodo chamado de “grace period”. Neste caso, ao ser ultrapassado o limite soft, o usuário pode utilizar esta “ultrapassagem de dados” até o limite do “grace period” (por default 1 semana), quando o “grace period” expira o limite de quota se torna hard (não podendo ser ultrapassado, até regulariar a situação).

Depois de entendido o sistema de quotas vamos editar e adicionar as regras. Para editar as quotas de um determinado usuário usamos:

~#
~# edquota -u usuario

No nosso exemplo, vamos visualizar as regras de quota para o usuário “bleno”, vejamos:

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 0, hard = 0)
inodes in use: 4, limits (soft = 0, hard = 0)

Veja que os limites de soft e hard estão com 0 KB! Vamos então definir 10MB de limite hard usando blocos (tamanho em disco). Neste caso 10 * 1024 = 10240, ficando nosso arquivo assim:

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 0, hard = 10240)
inodes in use: 4, limits (soft = 0, hard = 0)

Simples, não? Veja que o sistema de quotas é muito simples de se trabalhar. Vamos por exemplo definir para o usuário “bleno” uma quota de 10MB hard, 8MB soft por blocos e 200 arquivos hard e 190 arquivos soft por inodes (arquivos).

~#
~# edquota -u bleno
Quotas for user bleno:
/home: kbytes in use: 988, limits (soft = 8192, hard = 10240)
inodes in use: 4, limits (soft = 190, hard = 200)

Não há segredo. O único “problema” é quando temos um sistema com muitos usuários. Fica praticamente inviável editar cada usuário na mão. Mas é possível criar um shell script e gerenciar toda a manipulação de quotas. Vamos exemplificar mais um pouco.

Para copiar as regras de quota do usuário “bleno” para “joao”:

~#
~# edquota -p bleno joao

Copiar as regras de quota de “bleno” para usuários com UID 1000:

~#
~# edquota -p bleno 1000

Copiar as regras de quota de “bleno” para usuários com UID entre 1000 e 5000:

~#
~# edquota -p bleno 1000-5000

Assim finalizo este post sobre quota. O assunto é muito mais profundo e extenso. As man pages do comando “edquota” é bem explicativo (principalmente se você for criar algum shell script para gerenciar seu sistema de quota), vale a pena dar uma lida!

;)

Marcadores:

2006 - 2009 (c) bleno.org
100% Compatível com Mozilla Firefox