quinta-feira, 25 de outubro de 2012

Configurando NFS no Ubuntu

Este tutorial tem por objetivo ensinar a configurar o NFS no Ubuntu de forma rápida e simples, mas sem deixar de transmitir os conceitos necessários para a aquisição do conhecimento teórico. Antes de configurarmos o NFS e o NIS no GNU/Linux, devemos compreender o que eles são e para o que eles são utilizados.

A configuração do NFS no servidor consiste de três simples passos. 

1° passo: 

Baixar o pacote nfs-kernel-server utilizando o comando: 

# apt-get install nfs-kernel-server 

Estando como root no shell. 

2° passo: 

Definir qual pasta será compartilhada pela rede. Para isso é necessário editar o arquivo/etc/exports. Estando como root, no shell, digite: 

# vi /etc/exports 

E pressione "enter". Deverá ser mostrado um arquivo que poderá estar vazio ou cheio de comentários como estes: 

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#

Os comentários são definidos quando, no início da linha, aparece um "#", que diz que tudo que vem após ele é um comentário e não deverá ser levado em conta pelo sistema. Bem, dentro deste arquivo basta inserirmos no final dele o diretório que desejamos compartilhar e que tipo de acesso permitiremos dentro do mesmo. 

Ficará assim: 

/diretório_a_ser_compartilhado tipo_de_acesso_permitido Exemplo: 

/home/ *(rw,sync,no_root_squash)

Obs.: "*" (asterisco) define que todos da rede terão permissão de acesso ao diretório. "rw" poderão ler, gravar e apagar o conteúdo do diretório no_root_squash, o root do servidor também poderá se logar remotamente. 

Para definir apenas alguns usuários específicos a terem permissão de acesso ao compartilhamento, basta que no lugar do "*" seja colocado o IP da máquina que você deseja que tenha acesso aos arquivos. Se desejar somente leitura, no lugar de "rw" coloque "ro". Feito sua configuração basta salvar o arquivo pressionar "Esc", depois ":" (dois pontos) e digitar "wq", por fim pressione "enter". 

3° passo: 

Estando ainda no shell, como root, vá ao diretório /etc/init.d e dentro dele digite: 

# ./nfs-kernel-server start 

Isso iniciará o servidor com nossas configurações preestabelecidas, deixando-o pronto para compartilhar a pasta que definimos, bem como as máquinas que poderão acessá-la. 

Agora que já temos um servidor NFS configurado e rodando, devemos definir no(s) cliente(s) quais máquinas na rede estão cedendo o direito de acessar arquivos, pastas, dispositivos etc. 

Para isso teremos dois simples passos a seguir. 

1° passo: 

Instalar o pacote nfs-common no(s) cliente(s) digitando: 

# apt-get install nfs-common 

2° passo: 

Após instalado o pacote nfs-common no cliente, existem duas formas de fazer a configuração. Uma é fazer de forma que ela só irá funcionar naquela hora e depois que o computador for desligado não irá mais funcionar; e outra é uma forma permanente. 

Primeira forma: 

Basta, estando no shell, como root, digitarmos o comando mount seguido do IP do servidor mais o diretório que ele está nos cedendo e definirmos em qual lugar no nosso computador montaremos, ou seja, criar o link que nos direcionará para o diretório que está no servidor em algum lugar na rede... Fascinante, hauhauah. 

Exemplo: 

# mount 192.168.10.101:/home /home 

Traduzindo... ;-) 

Estou dizendo que quero que no meu home seja montado o acesso ao diretório /home que está na máquina 192.168.10.101 da rede. 

Obs.: Esta foi a forma que, ao reiniciar o computador, este ponto de montagem desaparecerá, sendo necessário remontá-lo novamente. 

Segunda forma: 

Estando no shell, como root, digite: 

# vim /etc/fstab 

Dentro do arquivo aparecerá algo semelhante a isto: 

# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc            /proc           proc    defaults        0       0
/host/ubuntu/disks/root.disk /               ext3    loop,errors=remount-ro 0       1
/host/ubuntu/disks/boot /boot           none    bind            0       0
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0

No final do arquivo basta adicionarmos uma linha com o IP do servidor mais o diretório que ele está nos cedendo acesso e mais algumas configurações, ficando assim: 

192.168.10.101:/home      /home     nfs   rw,bg,tcp,rsize=32768,wsize=32768,hard,nointr,nolock,noac,timeo=600,user,auto  0       0

Feito sua configuração, basta salvar o arquivo. Pressione "Esc", depois dois pontos ":" e digite "wq" e aperte "Enter". Onde estamos dizendo ao sistema o seguinte: toda vez que o computador for ligado execute a montagem do diretório do servidor no meu home, assim essa configuração nunca desaparecerá quando desligarmos o PC. ;-) 

Muito bom para não termos que dar o mount toda hora.

quarta-feira, 24 de outubro de 2012

Restaurando Backup Mysql pelo terminal

Estou partindo do ponto que o backup do banco esteja esteja feito, como fazer o backup acesse aqui, vamos lá o comando pra se recuperar o backup do mysql é esse:
COMANDO
mysql -h host_do_seu_banco -u usuario -p banco_de_dados <caminho_onde_esta_o_backup\nome_qualquer.sql

EXEMPLO
mysql  -h localhost -u root -p livros <backup/livros.sql

segunda-feira, 22 de outubro de 2012

Aprenda a recuperar o Grub 2.0

Iniciando com o Ubuntu, Grub 2 é usado (para instalações limpas a partir da versão 11.10 agora), desta forma vamos ensinar sobre a antiga forma de recuperação do GRUB que não funciona mais para o GRUB2. 

Mas (recuperar o GRUB 2 depois de quebrar o GRUB2 ou ao instalar o Windows ou alguma outra distribuição Linux como o Fedora, etc) é tão fácil.  

Veja o que você precisa saber:

Nota: Este tutorial deve funcionar para qualquer distribuição Linux que usa GRUB2, não apenas o Ubuntu. 


RECUPERANDO O GRUB2 (DEPOIS DE INSTALAR OUTRA DISTRIBUIÇÃO OS / LINUX OU APÓS UMA FALHA DO GRUB)


Para corrigir o GRUB 2, você precisa de um CD ao live do Ubuntu que pois você vai precisar para iniciar.

 Depois de arrancar com o CD LIVE, abra um terminal e digite os comandos.: 

a) Em primeiro lugar, você precisa descobrir em que partição seu sistema Linux está instalado:

sudo fdisk -l 
(No meu caso, é "sda1")

b) Agora, devemos montar esta partição:
 
sudo mount /dev/ sda1 /mnt 
 
Onde "sda1" é a partição onde você instalou o Ubuntu (ou qualquer outra distro Linux).Poderia ser "sda5", "sda6", etc. 

c) Instale o grub na partição que você montou:
 
sudo grub-install --root-directory=/mnt/ /dev/sda 


Importante: Por favor, "/ dev / sda", não "/ dev/sda1". "Sda" deve o disco rígido no qual a sua distribuição Linux está instalado! 

d) Reinicie o computador. As entradas anteriores do GRUB 2  são removidas, execute o seguinte comando para restaurá-las:
 
sudo update-grub 


Aqui está todo o processo de fixação GRUB 2, que ocorre após a reinicialização em uma única tela fizemos depois de tentar os passos abaixo:

como corrigir grub2

E uma nota final: Testamos  isso no VirtualBox quebrando GRUB na minha máquina 2 e depois montar um CD Ubuntu Live e tudo funcionou e deu certo.

terça-feira, 16 de outubro de 2012

Mysqldump escolhendo as tabelas dentro do banco pra backup

   Aqui vou fazer um comando pra que vc aprenda a fazer uma segmentação do backup, fazendo que vc escolha qual as tabelas mais importantes pra fazer backup, pra que os backup não fiquem muito grandes.
   Vamos supor que eu tenha 10 tabelas no meu banco de dados, mas queira fazer backup só da tabela 1,2,3, vamos lá.

SINTAXE:
MYSQLDUMP -u usuario -p senha base de dados tabela1 tabela2 tabela3 >nome do arquivo.sql

COMANDO:
MYSQLDUMP -u root -p123 livros tabela1 tabela2 tabela3 >backup.sql

Observando que entre as tabelas 1,2,3 tem uma espaço entre elas OK!

Bom, nessa segunda parte, vou somente listar as variações para manipular backup's com o MySQLDUMP, utilizando o prompt (Windows) ou terminal (Unix-Like).


shell> mysqldump -u <usuario> -p<senha> --add-drop-table <nome_banco> > <nome_arquivo.sql>

Instrui o mysqldump a preceder a inserção em cada tabela com uma declaração DROP TABLE que apaga a tabela. Esta opção assegura que a operação de recarga remova qualquer cópia pré-existente da tabela antes de recriá-la.


shell> mysqldump -u <usuario> -p<senha> --all <nome_banco> > <nome_arquivo.sql>

(--all ou -a) Instrui o mysqldump a produzir declarações CREATE TABLE que incluam todas as opções específicas do MySQL (como o tipo de storage engine e comentários) com as quais cada tabela foi criada. Por padrão, o mysqldump não incluir todas essas opções, resultando em arquivos que poderiam ser mais portáveis para serem carregados com um SGBD que não seja o MySQL.


shell> mysqldump -u <usuario> -p<senha> --extended-insert <nome_banco> > <nome_arquivo.sql>

(--extended_insert ou --e) Por padrão, os dados são copiados para o arquivo de dump comINSERTs separados, o que seria natural e manteria o arquivo mais portável. Esta opção, produzINSERTs de múltiplas linhas e adiciona diversas linhas na tabela de cada vez. Declarções de múltiplas linhas podem ser carregadas com mais eficiência, embora sejam menos legíveis que declarações de uma única linha se você examinar a saída da carga. Menos portáveis, esse é o maior problema.


shell> mysqldump -u <usuario> -p<senha> --no-create <nome_banco> > <nome_arquivo.sql>

(--no-create ou -t) Geralmente, o mysql adiciona uma linha no início do arquivo de backup que éCREATE DATABASE. Com esta opção, você solicita ao mysqldump que não inclua no arquivo esta opção. Observe que a presença desta linha não será problema algum, pois, a mesma inclue, além do CREATE DATABASE os comandos IF NOT EXISTS, ou seja, caso seu banco de dados já se encontre criado, ele não será apagado nem criado novamente.



quarta-feira, 3 de outubro de 2012

LOOP simples em ruby


Este loop repete-se 10 vezes, e em cada iteração ele incrementa 1 à variável ‘i’ e mostra na tela seu valor.
i = 0
10.times do
  i += 1
  puts i
end
Outra forma mais simples de se fazer isso:
0.upto(10) do |i|
    puts i
end
Podemos, ainda, simplificá-lo para apenas uma linha:
0.upto(10) { |i| puts i}

Entendendo o laço while da linguagem Ruby

O laço while é usado quando queremos executar um bloco de códigos continuamente até uma condição seja verdadeira. Veja um exemplo:
valor = 1

while valor <= 10
  puts valor
  valor += 1
end
Este código exibirá os números de 1 à 10.