Benefícios que você nem conhece
O conceito de área pública compartilhada é simples e conhecido. Os benefícios em utilizá-lo, nem sempre, mas vale conferir

Aurelio M. Jargas

Este artigo ensinará a configurar e explicará as vantagens em se usar uma área pública compartilhada numa rede interna Linux, seja ela de uma escola ou de uma empresa.

Uma área pública compartilhada, como o próprio nome já diz, é um diretório visível para todas as máquinas da rede, montado de um servidor via NFS, em que elas podem acessar e gravar arquivos sem restrições. É como o diretório /tmp de sua máquina, em que todos os usuários podem gravar dados. O conceito de área pública compartilhada é como um /tmp da rede, por isso o nome /tmpr.

Então a idéia é as máquinas terem um diretório /tmpr, comum a todas, o ponto central de intercâmbio da rede.

A grande vantagem em se ter essa área pública para todas as máquinas é a troca rápida de arquivos entre máquinas e entre usuários. Com o /tmpr funcionando em sua rede interna, o utilitário ftp pode ser esquecido.

Sendo o Linux um sistema operacional multiusuário e multitarefa, é comum que, ao trabalhar numa rede, você utilize vários terminais abertos com diversos usuários, acessando diversas máquinas. E quando é preciso trocar arquivos entre as máquinas, é ftp pra cá, ftp pra lá, acessa a máquina, digita usuário, senha, entra no diretório remoto correto, copia os arquivos, fecha a conexão. Esqueceu algum arquivo? Tem que fazer tudo de novo...

Com o /tmpr comum você simplesmente copia os arquivos desejados para o diretório /tmpr na máquina remota, muda de terminal e na sua máquina local você simplesmente copia os arquivos do /tmpr para o diretório desejado. Rápido e fácil, sem usuário e senha, sem conexão, sem demora.

Outro uso é a disponibilização de programas. Acabou de sair a versão mais nova do programa XYZ, de 200Mb, que deve ser atualizado em todas as máquinas da rede. Sem o /tmpr ou o programa é enviado aos usuários das máquinas via e-mail, afogando o servidor de e-mail e toda a rede, ou você deixa o arquivo disponível numa área de ftp, para que cada um baixe uma cópia dele. Em ambas as situações, 200Mb de espaço em disco de cada máquina serão ocupados desnecessariamente, fora eventuais problemas que possam ocorrer nessa cópia do arquivo para o disco local.

Baixando o programa e colocando no /tmpr, todas as máquinas o atualizam de lá mesmo, sem precisar copiá-lo para o disco rígido, evitando desperdício de tempo e espaço de disco.

Ou ainda, você acabou de acessar aquela página na Internet, cheia de dados, imensa e demorada de carregar, e gostaria de mandá-la para os outros verem também. Ou você manda a página no e-mail ou manda apenas o endereço para que os outros a acessem também. Como alternativa, você simplesmente faria: "veja arquivo em /tmpr/pagina.html", novamente economizando a banda da rede e espaço em disco nas máquinas.

O /tmpr ainda pode servir como área simples de desenvolvimento de uma equipe, quando várias pessoas precisam editar os mesmos arquivos (e supondo que todos utilizem o mesmo editor de textos), todos têm acesso aos arquivos. Se alguém tentar abrir um arquivo que já está sendo editado por outra pessoa, o editor de textos avisará, impedindo a sobrescrita. Isso é bem útil principalmente para adição de conteúdo, críticas e comentários a documentos simples ainda em fase de elaboração.

E como nem tudo são rosas, como conseqüência direta da falta de restrição no diretório, ele acaba virando um lixão da rede também, com arquivos antigos, fotos, músicas, e toda sorte de arquivos trocados entre os usuários. Para evitar isso basta fazer um robozinho (roteiro em bash agendado no crontab), que apague os arquivos que estão lá há dez dias por exemplo. Nada que um simples "find /tmpr -type f -mtime 10 -exec rm -f {} \ ;" não faça &:)

Configuração

A configuração não é difícil. Na máquina servidora, que é onde estará o /tmpr original, em disco, basta criar o diretório /tmpr, definir e ativá-lo como exportável. Em cada máquina cliente da rede, basta criar o diretório público, e configurá-la para montá-lo automaticamente. Pronto! Seu diretório público já está funcionando. Os comandos para criar essa configuração estão no quadro 1. Apenas troque "servidor" pelo nome ou IP da sua máquina servidora.

Utilidades

Com seu diretório público funcionando e sendo legível/gravável por todas as máquinas de sua rede interna, além das vantagens já citadas de compartilhamento de arquivos entre máquinas e usuários, pode-se facilitar o acesso a informações de sua intranet.

Por exemplo, o meio mais fácil hoje de disponibilizar dados para todas as máquinas da rede interna lerem é via HTTP, disponibilizando páginas HTML que qualquer navegador lê. Vamos utilizar como exemplo uma empresa que tenha uma página com a lista de todos os funcionários e seu respectivos ramais internos, digamos em http://servidor/ramais.html. Cada vez que você precisa de um ramal, abre o navegador, digita o endereço e procura na página o nome da pessoa desejada. Dependendo do tráfego da rede, esse é um procedimento demorado e perde-se tempo apenas para saber um ramal.

Com a ajuda de outras ferramentas de sistema podemos automatizar isso. Basta colocar uma versão texto desse arquivo no /tmpr (isso também pode ser automatizado com o lynx -dump + crontab), e criar funções de procura.

Supondo que você criou um /tmpr/ramais.txt, coloque no seu /etc/bashrc: ramal(){ [ "$1" ] && grep -i "$*" /tmpr/ramais.txt ; } e na linha de comando basta digitar: ramal maria, e lhe será retornado o ramal da Maria, instantaneamente, sem precisar de navegador, apache etc.

Conclusão

E, é claro, várias outras utilidades podem ser encontradas no uso dessa área compartilhada — se achar mais uma, me avise!

Como em outros exemplos do mundo real, é uma idéia simples que facilita sua vida.

Referências

man exportfs

man exports

man mount

man find

man grep

man bash

Seqüências de comandos para configuração do diretório público numa rede Linux:

Pacotes como o NFS é um serviço em que o pacote muda de nome como você troca de roupa, se não souber que pacote instalar, instale todos os relacionados, no cliente e no servidor:

No Servidor:
# rpm -hiv *nfs* portmap*
No servidor
# mkdir -m 777 /tmpr
# echo /tmpr >> /etc/exports
# cds
# ./portmap start ; ./nfs start
Em cada cliente:
# mkdir -m 777 /tmpr
# echo servidor:/tmpr /tmpr nfs defaults 0 0 >> /etc/fstab
# mount /tmpr