terça-feira, 8 de dezembro de 2009

VirtualBox - Clonar um disco virtual

Você deve estar imaginando que clonar uma máquina seria simples, pois bastaria dar um Ctrl+c no arquivo original e um Ctrl+v para colar e, assim, teríamos dois arquivos com o mesmo conteúdo, ou seja, um backup da mesma. Pois é, se você fizer isso, a sua cópia não irá rodar no VirtualBox.

Isso ocorre porque cada disco virtual criado recebe um número de identificação (UUID) específico, o qual é armazenado dentro da própria imagem do disco. O VirtualBox somente carrega discos virtuais unitários, o que significa que se você usou a técnica Ctrl+c/Ctrl+v, você terá criado uma cópia com o mesmo UUID do disco original e, portanto, o VirtualBox se recusará a carregar uma das imagens.

Para poder realizar uma clonagem de um disco virtual, o VirtualBox disponibiliza o utilitário VBoxManage, o qual possui diversas funcionalidades, e é chamado por meio da linha de comando. Para clonar um disco virtual você deverá seguir os seguintes passos:

1. acesse a pasta do VirtualBox com o comando no terminal:

cd /home/seu_login/.VirtualBox/HardDisks

2. chame o programa VBoxManage seguido dos parâmentros necessários:

VBoxManage clonehd nome_disco_a_ser_clonado nome_do_clone

No meu caso, se eu desejar clonar meu disco virtual do Windows XP, os comandos seriam:

cd /home/trinity/.VirtualBox/HardDisks
VBoxManage clonehd WinXP.vdi WinXP_backup.vdi

Note que:

VBoxManage = nome do utilitário
clonehd = tarefa (copiar o hd)
WinXP.vdi = nome do meu disco virtual que desejo clonar
WinXP_backup.vdi = nome que será dado ao clone

Assim que o disco começar a ser clonado, você poderá acompanhar o seu andamento pelo próprio terminal por meio da indicação da porcentagem de trabalho concluído. Ao terminar, vá até a pasta onde os discos são armazenados:

/home/seu_login/.VirtualBox/HardDisks


Fonte: http://ubuntulinuxbr.blogspot.com

domingo, 6 de setembro de 2009

domingo, 23 de agosto de 2009

Você precisa mesmo de reuniões?

http://nerdson.com/blog/groupthink/

segunda-feira, 10 de agosto de 2009

Replicação assíncronica

http://tips.blog.br/2009/?p=200

quarta-feira, 29 de julho de 2009

Backup MySQL

#!/bin/bash
U_PASTA="/home/user/backup" # < -- substitua pelo caminho onde vai salvar o backup
U_DATA=$(/bin/date +%Y%m%d%H%M%S)
U_CAMINHO="backup-$U_DATA.sql"
U_HOST="localhost"
U_USER="root"
U_PASSWORD="********"
U_DATABASE="minha_base_mysql"
U_EMAIL="meuemail@meudominio.com.br"
#
erro=""
#
cd $U_PASTA
#
#
# Faz o backup do MySQL
#
mysqldump -h $U_HOST -u $U_USER -p$U_PASSWORD $U_DATABASE > $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro na geracao do SQL"
fi
#
#
# Compacta o arquivo
#
if [ "$erro" == "" ]
then
gzip $U_CAMINHO
if [ $? -ne 0 ]
then
erro="Erro ao compactar o SQL"
fi
fi
#
# Apaga arquivos antigos e mantem apenas os 'n' ultimos
#
n=10
c=0
for i in *.sql.gz
do
let c=$c+1
done
if [ $c -gt $n ]
then
for i in *.sql.gz
do
if [ $c -le $n ]
then
break
fi
rm $i
let c=$c-1
done
fi
#
if [ "$erro" == "" ]
then
erro="Backup efetuado com sucesso!"
subject="[Sucesso]"
else
subject="[Erro]"
fi
echo "$erro => $U_CAMINHO.gz" | mail -s "$subject Backup em $(/bin/date +'%d/%m/%Y %H:%M:%S')" $U_EMAIL
#
# Volta para a pasta anterior
cd -


Para agendar a execução, digite:

$ crontab -e

Vai abrir um editor de texto com o arquivo de configuração da cron. Daí você pode digitar algo como:

# m h dom mon dow command 00 02 * * * /home/user/backup_bd.sh

Onde backup_bd.sh é o arquivo do script que passei acima.


Melhorando a performance do Firefox

A partir da versão 3, o Firefox guarda os favoritos, histórico e mais um punhado de coisas em sqlite. Por isso, manter essa base otimizada pode ser muito saudável ao seu Firefox.

No Ubuntu (testei no 9.04), instale o sqlite3.

Abra o terminal e digite:

sudo aptitude install sqlite3

Depois, ainda no terminal, acesse a pasta de seu perfil (profile) do Firefox:

cd ~/.mozilla/firefox/alguma_coisa_estranha.default

Varia de acordo com o computador. No meu, esse alguma_coisa_estranha.default é 73cm0ffy.default.

Você vai ver que essa pasta possui vários arquivos com a extensão .sqlite, que é o que queremos otimizar. Para isso, feche o Firefox (não antes de terminar de ler esse post ou copiá-lo :P ), depois simplesmente digite, para cada arquivo:

sqlite3 nome_do_arquivo.sqlite vacuum

Tem como fazer em todos os arquivos de uma vez? Claro. Você está mexendo em um terminal Linux! Para fazer todos de uma vez, digite:

for i in *.sqlite; do sqlite3 $i vacuum; done

Les Luthiers

TELEPATÍA: aparato de TV para la hermana de mi mamá.
BERRO: Bastor Alebán.
CAMARÓN: Aparato enorme que saca fotos.
TELÓN: Tela de 50 metros cuadrados o más.
ANÓMALO: Hemorroides.
BARBARISMO: Colección exagerada de muñecas barbie.
CHINCHILLA: Auchenchia de un objeto para chentarche.
DIADEMAS: Veintinueve de febrero.
MANIFIESTA: Juerga de cacahuetes..
MEOLLO: Me escucho.
ENDOSCOPIO: Prepararse para todos los exámenes, excepto dos.
NITRATO: Ni lo intento.
INESTABLE: Mesa norteamericana de Inés
ENVERGADURA: Lugar de la anatomía humana en dónde se colocan los condones.
ONDEANDO: Onde estoy.
DECIMAL: Pronunciar equivocadamente.
BECERRO: Que ve u observa una loma o colina.
BERMUDAS: Observar a las que no hablan.
POLINESIA: Mujer Policía que no se entera de nada.
DILEMAS: Háblale más.
MEOLLO: Me escucho.
ATIBORRARTE: Desaparecerte.
CACAREO: Excremento del preso.
CACHIVACHE: Pequeño hoyo en el pavimento que está a punto de convertirse en vache.
ELECCIÓN: Lo que expelimenta un oliental al vel una película polno.
NUEVAMENTE: Cerebro sin usar.
TALENTO: No ta rápido.
ESGUINCE: Uno más gatorce.
ESMALTE: Ni lune ni miélcole.
SORPRENDIDA: Monja en llamas

sábado, 4 de julho de 2009

TP LINK segurança

Clica no menu "Wireless" > "Wireless Settings".

Habilita a caixa "Enable Wireless Security"
Em "Security Type" escolha "WPA-PSK/WPA2-PSK"
Em "PSK Passphrase" escolha uma senha de 8 a 63 caracteres.

Clique em "SAVE"

Depois vai na sessão "System Tools" > "Password" e troca a senha 
do ADMIN (pode trocar o nome do usuário também.

quinta-feira, 25 de junho de 2009

jQuery Cycle Plugin

Show de bola, mais um plugin super util para imagens

quarta-feira, 4 de março de 2009

O que é uma classe

Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades -- ou atributos -- o objeto terá.

Além da especificação de atributos, a definição de uma classe descreve também qual o comportamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades são descritas através de métodos. Um método nada mais é que o equivalente a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os atributos que foram definidos para a classe.

O que é um objeto?

Um objeto é um elemento computacional que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classes.

No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programação, um objeto não é muito diferente de uma variável no paradigma de programação convencional. Por exemplo, quando define-se uma variável do tipo int em C ou em Java, essa variável tem:

  • um espaço em memória para registrar o seu estado atual (um valor);
  • um conjunto de operações associadas que podem ser aplicadas a ela, através dos operadores definidos na linguagem que podem ser aplicados a valores inteiros (soma, subtração, inversão de sinal, multiplicação, divisão inteira, resto da divisão inteira, incremento, decremento).

Da mesma forma, quando se cria um objeto, esse objeto adquire um espaço em memória para armazenar seu estado (os valores de seu conjunto de atributos, definidos pela classe) e um conjunto de operações que podem ser aplicadas ao objeto (o conjunto de métodos definidos pela classe).

Um programa orientado a objetos é composto por um conjunto de objetos que interagem através de "trocas de mensagens". Na prática, essa troca de mensagem traduz-se na invocação de métodos entre objetos.

sexta-feira, 20 de fevereiro de 2009

Exim - Linha de comando

Numero de mensagens na fila

# exim -bpc

Mensagens na fila, detalhado

# exim -bp

ou

exim -bp | exiqsumm

Para saber que o Exim está fazendo neste instante...

# exiwhat

Exibir configuração do Exim

# exim -bP


Exibe uma lista de todos os IDs da fila

# exiqgrep -i

Força o envio das mensagens da fila

# exim -q -v

Força o envio das mensagens da fila, para endereços locais

# exim -ql -v

Para remover uma mensagem da fila

# exim -Mrm

Para remover mensagem da fila, com mais de 5 dias (86400 * 2 = 172800 seconds).

# exiqgrep -o 172800 -i | xargs exim -Mrm

Visualizar o cabeçalho de uma mensagem

# exim -Mvh

Visualizar o corpo de uma mensagem

# exim -Mvb

Visualizar o log de uma mensagem

# exim -Mvl


quarta-feira, 18 de fevereiro de 2009

quarta-feira, 11 de fevereiro de 2009

Sudoers

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Host alias specification

# User alias specification
User_Alias ADMINS =pirulito, mané

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL
ADMINS ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

quarta-feira, 28 de janeiro de 2009

Balanceamento mysql

http://imasters.uol.com.br/artigo/11161/mysql/balanceamento_de_carga_no_mysql_-_parte_1/
http://imasters.uol.com.br/artigo/11319/mysql/balanceamento_de_carga_no_mysql_-_parte_02/

SQL e Rails

http://simplesideias.com.br/executando-sql-no-rails/
http://simplesideias.com.br/dica-rapida-3-sanitizando-queries-com-activerecord/