Arquivo da tag: Linux

Como programar o desligamento do seu computador

Imagine que você está baixando um arquivo grande com o uTorrent ou está ripando um DVD a previsão de término é de 2 horas, é 23:00 h e você quer ir dormir, mas não quer deixar o computador a noite inteira ligado. Existe maneiras de programar o desligamento do computador facilmente.

Programando o desligamento no Windows XP

Vá em Iniciar, Executar e digite:

shutdown /i

Será aberta uma janela parecida com a abaixo. Para desligar seu computador dentro de 2 horas, preencha conforme o exemplo:

Logo após a programação você verá a seguinte tela:

Se você se arrepender e quiser cancelar o desligamento, vá em Iniciar, Executar e digite shutdown /a e o shutdown será cancelado.

Programando o desligamento no Windows Vista

No Windows Vista a Microsoft “capou” o shutdown e você não pode agendar desligamento para mais de 999 segundos (pouco mais de 16 minutos). Então para poder programar o desligamento de seu computador você precisará utilizar o agendador de tarefas. Se 16 minutos forem suficientes para você, preencha a tela do shutdown conforme abaixo:


Você receberá o aviso abaixo:


Para programar o desligamento no Vista usando o agendador de tarefas. Vá em Iniciar, Executar e digite cmd.exe. Para desligar o computador 2 horas depois das 23:00 h:

at 01:00 shutdown -s -f

Se você quiser pode somente hibernar o computador. Hibernar tem a vantagem de acelerar o boot do computador, já que todos os dados da memória serão gravados em disco. Para isso digite:

at 01:00 shutdown -h

Programando o desligamento no Linux

Abra uma console, usando o Ctrl+F1 ou Ctrl+F2, logue com o seu usuário e digite:

sudo su

Se pedir a sua senha digite-a. Digite o comando:

sleep 2h ; shutdown -h now

Versão do Ubuntu roda em micros velhos

O Lubuntu é uma distribuição baseada no Ubuntu que usa o LXDE, um gerenciador de janelas mais leve que o Gnome e o KDE. Seu principal objetivo é  rodar um Linux atual em hardwares antigos que tenham pelo menos 192 MB de RAM. Aqui no Blog você já viu outras distribuições que se propõem a isso como Damn Small Linux ou o Tinycore, mas acredito que o Lubuntu está em um nível superior.

Testei em uma máquina virtual no VirtualBox, instalou e rodou legal com 192 MB de RAM e hd de 3 GB. Testei também em um Celeron 700 MHz com 128 MB de RAM que eu tinha encostado em um canto. No Celeron a instalação não funcionou, pois no próprio site do Lubuntu diz que a quantidade mínima de memória para instalar é 192 MB de RAM. Para não precisar abrir o computador, executei o particionamento antes da instalação e ativei o Swap. Instalou, mas demorou cerca de 26 horas (você não leu errado, demorou mais de 1 dia) contra cerca de 30 minutos na máquina virtual.

A interface gráfica é bem elegante e traz como navegador padrão o Google Chrome, que funciona legal. Não cheguei a testar outras coisas, mas como é baseada no Ubuntu, deve seguir seu padrão de qualidade. Uma coisa que geralmente não funciona direito no Linux é a função de Hibernar, que para a minha surpresa funcionou direitinho.

Resumindo é uma distribuição bem leve, muito mais leve que o próprio Xubuntu, versão do Ubuntu para hardwares antigos. É com certeza uma maneira de tornar usáveis aqueles hardwares que não rodam legal com nada mais pesado que Windows 98.

Ao contrário do Kubuntu, Edubuntu, Ubuntu Server (que são mantidos pela própria Fundação Canonical) e do Xubuntu, Ubuntu Studio e Mythbuntu (que são derivações reconhecidas), o Lubuntu não tem ainda o reconhecimento da organização. Na minha opinião pelo trabalho que fizeram, realmente o merecem.

Ficou interessado? Acesse lubuntu.net, baixe o iso, grave e instale.

Google Android agora roda no iPhone

O vídeo é convincente. Funciona tudo, inclusive você consegue usá-lo como telefone (bela ironia esta não?). O bacana é que não é preciso desinstalar o sistema operacional original e dá para utilizar dual boot. Esta é a união do melhor hardware com o melhor sistema operacional.

Meu colega Rodrigo Gonçalves disse que vai emprestar o seu iPhone 2G para eu tentar colocar Android nele. Vamos ver se realmente funciona.

PS: Alguém quer me doar um iPhone 2G?

Fonte: Linux on the iPhone

Como pesquisar mais de uma string com o grep

A utilização comum do grep, é básica para qualquer administrador Unix. Abaixo um exemplo que mostrará todos os processos do sistema que contenham a string “wine”:

ps -ef | grep wine

Agora imagine que você precisa pesquisar 2 strings e que saber o retorno. Por exemplo: Imagine que eu tenho o arquivo cardapio.txt com o seguinte conteúdo:

Segunda-feira
Carne
Arroz
Feijão
Terça-feira
Sopa
Quarta-feira
Lasanha
Quinta-feira
Macarrão
Carne
Sexta-feira
Pizza

Imagine agora que eu quero saber em quais dias da semana o cardápio inclui carne. Basta criar um arquivo chamado lista.txt, por exemplo, com o conteúdo:

feira
Carne

Agora basta executar o comando abaixo:

cat teste.txt | grep -f lista.txt

O resultado será o abaixo:

Segunda-feira
Carne
Terça-feira
Quarta-feira
Quinta-feira
Carne
Sexta-feira

Ainda não descobri como não mostrar os dias em que não aparece Carne no cardápio. Quando descobrir eu atualizo o post.

Acabei de descobrir como filtrar somente os dias da semana que tem Carne. Basta colocar mais um grep com a opção -B 1 (que monstra a linha anterior a uma ocorrência). O comando inteiro fica assim:

cat teste.txt | grep -f lista.txt | grep Carne -B 1

O resultado será o abaixo. Cada uma das ocorrências é separada por —

Segunda-feira
Carne

Quinta-feira
Carne

Sistema de arquivos compartilhado no Linux – Parte 1: GFS

O GFS é um dos sistemas de arquivos compartilhados que testei nos últimos dias. Ele é mantido hoje pela Red Hat e é uma das “features” que impulsionam a venda do RHEL (Red Hat Enterprise Linux). Mas não é necessário comprar o caro Red Hat, é possível fazê-lo funcionar no Centos, que é gratuito.

Para o GFS funcionar, é necessário configurar o Cluster do Linux e confesso que sofri muito para conseguir fazer tudo funcionar. Primeiro porque não achei documentação decente, com exceção das que cito como fontes deste procedimento. Segundo porque não achei os pacotes necessários para fazer o Cluster do Linux e o GFS funcionarem no Centos 5. Sendo assim tive que optar pelo Centos 4.8.

Pré-requisitos

  • Pelo menos 2 servidores com 2 ou mais processadores ou cores. (Os pacotes do cluster e GFS são compilados para kernels SMP). Importante: Este tutorial não funciona em kernel mono-processado.
  • Centos 4.8 x86_64 bits mínimo instalado. Não é necessário instalar nenhum pacote na hora da instalação, instalaremos os pacotes necessários em seguida. Baixe o ISO do CentOS aqui. Note que você vai precisar de uma máquina com instruções 64 bits. Todos os processadores lançados nos últimos 3 anos devem ser compatíveis.
  • Ter a mão os pacotes do Cluster para instalar. Como eu sou um cara legal, criei um arquivo compactado com todos eles que você pode baixar aqui.
  • Ter um volume de acesso compartilhado via SCSI. Isso é possível via Storage (apontando uma LUN para 2 ou mais hosts) ou via VMware (usando este procedimento)
  • Configurar o acesso a rede no Centos e nomear as máquinas. Não esqueça de colocar todos os servidores membros do cluster no arquivo /etc/hosts
  • Deve haver conectividade de rede entre todos os servidores membros do cluster.

Legenda

A maior parte das operações precisam ser executadas em todos os servidores membros do cluster mas algumas somente uma vez. Para facilitar convencionei o seguinte:

  • Operações que devem ser executadas em todos os nós estão escritas em azul.
  • Operações que precisam ser executadas em somente um dos servidores estão escritas em verde.

Procedimento

Instalado o Cluster

Baixe e descompacte os pacotes do Cluster do Linux no diretório /tmp com os comandos:

cd /tmp
wget http://blogdovicente.com/wp-content/uploads/2009/12/clustertar.bz2
tar -xvjf clustertar.bz2

Caso não tenha acesso direto a internet e precise utilizar um servidor proxy, execute este procedimento.

Será criada um diretório chamado cluster. Acesse este diretório e instale todos os pacotes com os comandos:

cd cluster
rpm -hiv * – -nodeps

Agora será necessário instalar alguns pacotes para resolver as dependências dos pacotes recém instalados.

Renomeie o arquivo  /etc/yum.repos.d/CentOS-Base.repo para /etc/yum.repos.d/CentOS-Base.repo.old

Edite o arquivo /etc/yum.repos.d/CentOS-Media.repo e altere a linha enabled=0 para enabled=1

Insira novamente o DVD de instalação do CentOS e monte-o com o comando:

mount /dev/cdrom

Instale as dependências necessárias com o comando:

yum install nss.x86_64 perl-XML-LibXML pexpect fonts-xorg-base gnome-python2-canvas pygtk2-libglade

Aceite todas as confirmações e serão instalados todos os pacotes necessários.

Configurando o Cluster

Será necessário um utilitário gráfico para executar o configurador do cluster. Como não há interface gráfica instalada no servidor, é preciso exportar a tela para algum outro servidor ou estação que tenha o X instalado e rodando. Se você está rodando Windows na sua estação de trabalho, siga este procedimento. Se você está rodando o Linux na sua estação, é possível exportar a tela do configurador do Cluster para ela usando executando os seguintes passos:

No servidor, execute o comando:

export DISPLAY=ip_da_estacao_linux:0.0

Na estação, execute o comando:

xhost +

Com isso qualquer janela que for iniciado no servidor será mostrada na estação.

Execute no servidor o comando:

system-config-cluster

Será iniciada a configuração do cluster. Na primeira vez vai dar um erro, mas na segunda execução será exibida a tela abaixo.

1 ) Clique no botão Create New Configuration

cluster-create-new-configuration

2 ) Dê um nome para o cluster e clique em OK. Este nome será usado a frente na formatação do volume GFS:

new-cluster-configuration

3 ) Na tela seguinte clique em Fence Devices, Add a Fence Device

cluster-configuration

4 ) Na tela seguinte, selecione Manual Fencing, dê um nome a ele e clique em OK

add-fence-device

5 ) Clique em Cluster Nodes e em Add a Cluster Node

cluster-configuration-add-node

6 ) Na tela seguinte, coloque o nome do servidor e preencha 1 no campo Quorum Votes e clique em OK

node-properties

7 ) Clique no host recém adicionado e clique no botão Manage Fencing For This Node

cluster-configuration-manage-fencing

8 ) Na tela seguinte clique no host e no botão Add a New Fence Level

fence-configuration1

9 ) Clique em Fence-Level-1 e em Add New Fence to this Level. Na tela seguinte, selecione o Fence device que você criou anteriormente e clique em OK e depois em Close.

fence-level-1-properties

Repita os passos de 5 a 9 para todos os outros nós do Cluster. Para salvar clique em File, Save e OK para salvar a configuração no arquivo /etc/cluster/cluster.conf e clique em OK para concluir.

Clique em File, Quit para sair da configuração do cluster.

Copie o arquivo /etc/cluster/cluster.conf para todos os nós do cluster. Pode ser usado sftp ou scp.

Acertando os módulos do kernel

Execute os comandos abaixo para copiar os módulos do kernel para os locais corretos:

mkdir /lib/modules/2.6.9-89.ELsmp/kernel/cluster
cp -Rp /lib/modules/2.6.9-89.0.11.ELsmp/kernel/fs/gfs_locking/ /lib/modules/2.6.9-89.ELsmp/kernel/fs/
cp -Rp /lib/modules/2.6.9-89.0.11.ELsmp/kernel/fs/gfs/ /lib/modules/2.6.9-89.ELsmp/kernel/fs/
cp -Rp /lib/modules/2.6.9-89.0.11.ELsmp/kernel/cluster/ /lib/modules/2.6.9-89.ELsmp/kernel/
depmod

Alterando as opções de lock e criando o LVM

A criação do LVM pode ser feita da mesma maneira que criaria para um volume normal. O procedimento abaixo se refere a criação de um volume usando somente um disco. Partido do princípio que o disco que será usado pelo GFS é o dispositivo /dev/sdb, execute os passos abaixo:

pvcreate /dev/sdb
vgcreate vg0 /dev/sdb
vgchange -a y
lvcreate -L 1000MB -n lv0 vg0

O comando anterior contempla um disco de 1 GB. Altere este comando caso seu disco tenha tamanho diferente.

Altere no arquivo /etc/lvm/lvm.conf as linhas abaixo:

locking_type = 2
locking_library = “/usr/lib/liblvm2clusterlock.so”

Iniciando os serviços necessários para o Cluster

Os serviços do cluster deverão ser iniciados na ordem abaixo em todos os nós do cluster para que seja possível montar volumes GFS:

service ccsd start
service cman start

Depois disso os seguintes serviços devem ser iniciados em todos os nós do cluster:

service fenced start
service clvmd start
service gfs start

Criando e montando o volume GFS

Execute os comandos abaixo para formatar e montar o disco como GFS:

gfs_mkfs -p lock_dlm -t nome_do_cluster:nome_desejado_para_o_volume -j numero_de_nos_do_cluster /dev/vg0/lv0
mkdir /mnt/gfs
mount -t gfs /dev/vg0/lv0 /mnt/gfs

Tornando a montagem automática no boot

Para isso você precisará editar o arquivo /etc/fstab. Insira no final dele a seguinte linha:

/dev/vg0/lv0     /mnt/gfs     gfs     defaults,noquota,noatime,nodiratime     0 0

Conclusão

Ter um disco compartilhado é muito bom para muitas aplicações e pode aumentar muito a performance em comparação a um acesso feito via NFS. O GFS funciona bem mas eu tive alguns problemas, como algumas máquinas sairem fora do cluster, quando executei uma aplicação que faz acesso massivo de disco e usava muita CPU. Eu não consegui chegar a conclusão de qual foi a causa. Como o lock entre os servidores é feito via rede, pode ter sido uma perda de comunicação ou mesmo o acesso a disco que não foi rápido o suficiente. Antes de implantar em ambiente de produção, sugiro fortemente que você faça testes e avalie a solucão para seu ambiente.

Caso tenha algum problema, primeiro veja se você não pulou algum passo. Tutoriais como este são bem extensos e é fácil de esquecer alguma coisa. Se este não for seu caso ou tiver alguma sugestão para deixar o texto mais claro, deixe um comentário.

Fontes

Red Hat Documentation: Oracle RAC GFS

GFS Wiki

Red Hat Knowledgebase: How do you set up GFS on Red Hat Enterprise Linux 4 Update 2 or later?

Pacotes do Red Hat Cluster para o Centos 4.X

Red Hat GFS 6.1: Administrator’s Guide

Red Hat Knowledgebase: How can I improve the performance of my GFS filesystem or prevent processes from hanging while accessing it?

Dicas úteis sobre o ping

O ping é um comando usado para testar a conexão de rede entre equipamentos.

Para testar a conexão entre dois equipamentos basta digitar, no equipamento de origem, o comando ping seguido do endereço IP ou nome do equipamento de destino.

No Linux ele fica executando testes até que seja pressionado CTRL+C.

No Windows o padrão do comando é executar apenas 4 testes de conexão. Para que ele fique testando eternamente coloque o parâmetro -t ao final do comando. Pressionar CTRL+C também irá finalizar os testes.

Em ambos os Sistemas Operacionais quando CTRL+C é pressionado o comando é encerrado e é mostrado um resumo dos testes, com número de pings executados, percentual de pings respondidos, e os tempos máximo, mínimo e médio que os pings demoraram para serem respondidos.

Mas e se você quiser deixar um computador pingando em outro o dia inteiro, mas ao mesmo tempo quiser coletar estatísticas de tempos em tempos.

Uma solução seria pressionar CTRL+C para parar o comando e logo em seguida executar o comando novamente, mas ao final do dia você teria que somar todos os dados manualmente para ter o resultado do dia inteiro.

A solução mais profissional é usar CTRL+BREAK (no Windows) ou CTRL+ (no Linux). Isso fará com que seja mostrado o resumo das estatísticas até aquele momento sem interromper o comando. Ao final dos testes pressione CTRL+C para encerrar o comando e receber o resumo de todo o período.

No Windows

pingwindows

No Linux

pinglinux

Conectar na interface gráfica do Linux usando Windows

Primeiramente instale 2 programas no seu Windows:

1. Putty (apenas o executável)

2. Xming (instalador)

Execute o Xming, irá aparecer um ícone na Bandeja do Windows (aquele espaço ao lado do relógio)

xming

Agora é a hora de se conectar ao Linux. Execute o Putty

Digite o nome do servidor Linux no campo Host Name (or IP address)

servidor_linux

Clique na categoria X11 e em seguida marque Enable X11 Forwarding.

putty_x11

Agora clique em Open

Digite usuário e senha.

Agora você está no prompt de comando do Linux

Execute algum aplicativo gráfico que esteja instalado no Linux, por exemplo o xclock
(Dica: coloque um & no final do comando para liberar o prompt de comando).

xclock

O Linux não precisa nem estar com o modo gráfico ativado para que este procedimento funcione.

ALERTA

Se aparecer a mensagem no protocol specified, connection refused by server ou Gtk-WARNING **: cannot open display:

1. Feche o Xming

2. Clique com o botão da direita sobre o ícone do Xming dentro de Iniciar/Programas e escolha Propriedades

3. Inclua no final do campo destino o parâmetro -ac

“C:Arquivos de programasXmingXming.exe” :0 -clipboard -multiwindow -ac

4. Clique em Ok

5. Execute novamente o Xming

6. No Linux execute

export DISPLAY=endereçoIP_da_sua_estação:0.0

Fonte: http://www.cse.unsw.edu.au/~helpdesk/documentation/Putty.html

Criando um disco de uso compartilhado no VMware

No VMware, por padrão, é possível utilizar um disco para somente uma máquina virtual de cada vez. Você pode compartilhar o disco desde que somente uma das máquinas virtuais esteja ligada por vez.

Se você precisa usar o um sistema de arquivos compartilhado como o GFS ou OCFS2 no Linux ou deixar o disco disponível para escrita em uma máquina e as outras usando o disco somente para leitura vai precisar fazer algumas alterações na configuração da controladora SCSI.

Atualização em 9/2/2010: Apesar de ser funcional, este procedimento não se aplica a sistemas de arquivos em que mais de um nó precisa ler e escrever no disco. Nos meus testes com GFS e OCFS2, havia momentos em que um ou mais hosts perdiam acesso ao disco sem explicação. A maneira melhor de habilitar o acesso de várias máquinas virtuais ao mesmo disco físico é usar Raw Device Mapping ou RDM.

Este tutorial ainda é útil para montagem de discos para escrita somente em um host e leitura nos demais.

Como fazer:

1) Acesse a console do VMware ESX ou ESXi, edite a máquina virtual e adicione um novo disco.

2) Ao escolher o ID SCSI do disco, escolha um ID em uma controladora diferente do disco existente. Exemplo, se seu disco de sistema está usando o ID 0:0, escolha para o novo disco o ID 1:0. Isso fará que o VMware adicione outra controladora SCSI.

add-new-scsi-disk

3) Após concluir o assistente, você notará em negrito os dispositivos que serão adicionados. Clique na controladora SCSI e altere a opção SCSI Bus Sharing para Physical e clique em OK para concluir.

change-controller-settings

Pronto! Agora você poderá adicionar este disco em outra máquina virtual e as duas poderão acessar o disco.

IMPORTANTE: Você não pode fazer isso com Windows para as duas máquinas enxergarem o disco para escrita em uma partição NTFS, por exemplo. Se o Windows permitir o acesso de duas máquinas ao mesmo tempo, a partição será corrompida e vai haver perda de dados. Mesmo no Linux, até pode atribuir uma partição EXT3, por exemplo, para dois ou mais servidores, mas somente 1 deles poderá montar o disco para escrita. Os dois únicos sistemas de arquivos que suportam este recurso que testei são o GFS e OCFS2 no Linux. Logo, logo colocarei tutoriais de como implementar os dois aqui no blog.

Sistemas de arquivos compartilhados

Este talvez seja um dos artigos mais nerds que eu já escrevi no blog, mas vai servir de introdução para outros dois que vou escrever em breve.

Imagine que você tenha um computador que acesse determinados arquivos. Além dele, outros 2 precisam ler e gravar no mesmo disco. Se você pensar no mundo Windows, você precisará atribuir o disco com estes arquivos em um computador e criar um compartilhamentos para os outros dois acessarem. Se for no mundo Unix, onde tudo funciona bem melhor, você exportaria o disco via NFS e os dois acessariam usando este protocolo:

acesso-nfs-smb

Quais são os problemas da solução acima? Eu lembro destes:

1) Caso o computador que tem o disco travar, os outros dois param de acessar o disco.

2) O computador que “administra” o disco terá uma sobrecarga por “servir” os dados para os outros computadores. Quanto maior a quantidade de leituras e alterações, maior a sobrecarga.

3) O computador que “administra” o disco terá uma alta velocidade de acesso ao disco, mas os outros dois computadores estarão limitados pela rede, que tem uma velocidade e latência (tempo de espera entre a solicitação e entrega do dado) maiores.

A solução ideal é que todos os computadores acesse o disco diretamente:

acesso-direto-disco

O problema desta solução é que o sistema de arquivos precisa estar preparado para isso. Se você dar acesso a três servidores Windows ou Linux em uma partição e todos estiverem lendo e escrevendo, eu garanto a vocês que o sistema de arquivos estará corrompido em pouco tempo.

Mas existem alguns sistemas de arquivos que são preparados para isso. Na Wikipedia em inglês há uma lista deles. Nos últimos dias eu fiz testes com dois deles:

GFS (Global File System) – Criado originalmente para o sistema operacional IRIX em 1997, foi portado para o Linux em 1998.  Em 2001 o GFS era de propriedade da Sistina Software que fechou o código. Em 2003 a Red Hat comprou a Sistina Software e liberou novamente o código sob licença GPL.

OCFS2 (Oracle Cluster File System) – Criado pela Oracle e usa a licença GPL. Integrada ao kernel do Linux a partir da versão 2.6.16 e marcado como estável a partir do kernel 2.6.19.

Os dois sistemas de arquivos tem vantagens por prover redundância e performance para aplicações que funcionam em cluster, como banco de dados e aplicações que precisam de sistemas de arquivos compartilhados.

Nos próximos dias, estarei publicando tutoriais de como implementar os dois sistemas de arquivos no Linux, aguardem.

Tinycore Linux cabe em 10 MB

10 MB. É o tamanho da isso da instalação do Tinycore Linux. Com interface gráfica. Nem o Windows 95 fazia este milagre em tão pouco espaço. Esta distribuição consegue ser ainda menor e mais rápida que o Damn Small Linux.

tinycore-linu

Testei estes dias e funciona muito bem. É perfeito para aquelas máquinas que nem Windows 98 não roda direito. No meu Celeron 700 com 128 MB agora inicia em menos 30 segundos. Com o Ubuntu 5.10 demorava quase 5 minutos.

Para testar, baixe o ISO e crie uma máquina virtual usando o VMware Player ou VirtualBox. Você também pode usar aquele computador velho que já não tem mais uso. Existe uma versão ainda menor com 6,6 MB que não tem interface gráfica.

Existe um tutorial para colocar a distribuição em um pendrive assim como dá para fazer com o Ubuntu. Talvez eu teste para ver se funciona no pendrive de 32 MB que sobrou da compra do FIC

[poll id=”7″]