30th novembro 2005, 07:57 pm
No dicas-l de hoje tem uma dica que publiquei entitulada: Logando atividades realizadas no shell. Explica sobre como armazenar em um arquivo, os comandos executados e suas respectivas saídas.
Bom para quem quer documentar algum processo realizado…
25th novembro 2005, 01:52 pm
No link HP MS Virtual Server Solution Sizer encontra-se uma ferramenta para auxiliar no dimensionamento de novas máquinas (Hardware HP) que rodarão múltiplos ambientes virtualizados para consolidar velhos servidores.
No início do processo é possível informar quais os servidores que se deseja consolidar, informando suas características de hardware, software e utilização atual. Também é possível carregar uma planilha excel contendo os dados necessários.
Os cálculos são realizados após completar o questionário com algumas informações relevantes e ao final será apresentando uma planilha com a quantidade de servidores necessários e nos detalhes, uma proposta de como poderia ser distribuido os antigos servidores dentro do novo modelo e a possível utilização de cada equipamento.
O software utilizado para a virtualização é o Microsoft Virtual Server 2005 que requer como sistema operacional Host o Microsoft Windows 2003.
24th novembro 2005, 08:05 pm
?? comum quando estamos trabalhando em um console linux e precisamos matar algum processo, executar um # ps aux | grep [PROGRAMA], pegar o PID e executar um # kill [PID] (ou kill -9 [PID]). Pois bem, se você ainda não conhece, deixe me falar (escrever) que é possível listar e matar os processos, utilizando para isso o próprio nome do processo. Para isso existem dois comandos encarregados desta tarefa, são eles o pgrep e o pkill.
O pgrep é responsável por pegar os processos em execução e listar seus IDs (PIDs), para isso o critério de seleção deverá ser completamente satisfeito. Por exemplo:
# pgrep httpd
Listará todos os PIDs de processos que tenham o nome httpd
Também é possível passar alguns parâmetros, como o -u que relaciona processos cujo o UID é efetivamente listado.
O pkill, por sua vez, enviará o respectivo sinal para cada processo que for listado (por padrão o SIGTERM) conforme o critério de seleção utilizado. Por exemplo:
# pkill -HUP syslogd
Fará com que o syslogd re-leia o arquivo de configuração.
Para maiores informações, consulte a página de manual destes comandos.
23rd novembro 2005, 02:35 pm
Navegando pelo site do World Wide Web Consortium (W3C), encontrei um diagrama que sempre imaginei existir mas nunca tinha achado. trata-se de uma imagem que apresenta de forma simples e objetiva onde se encaixam e qual a utilidade de cada uma das tecnologias recomendadas pela W3C.

Clique sobre a imagem para visualizá-la em tamanho natural.
Para quem imaginava que os Web Standards resumiam-se apenas ao XHTML, CSS, DOM e XML pode ter se impressionado com a quantidade de padrões disponíveis para uso. Se você tem interesse em desenvolver sites/sistemas seguindo os Padrões Web, este poderá ser um bom ponto de partida.
Para efeito de referência o link onde achei esta imagem é: About W3C: Technology.
20th novembro 2005, 12:31 pm
Se você possui um computador com suporte SMP (Symmetric MultiProcessor) é possível compilar os programas que utilizam o make (a grande maioria, se não todos) utilizando dois ou mais processadores. Para isso digamos que a aplicação em questão possui um arquivo Makefile, edite-o e procure pela linha:
MAKE=make
ao final da linha adicione a opção -jN, onde N é o número de jobs (ou processos de compilação) que serão executados simultaneamente.
?? aconselhável que N seja definido como o número de processadores da máquina +1, ou seja, digamos que você possui uma máquina com 2 processadores Dual Core, então você poderia alterar a linha para:
MAKE=make -j5
Caso o arquivo Makefile não possua a entrada MAKE, então você poderá adicionar a opção -j diretamente ao executar o make:
# ./configure
# make -j5
Se você possui muita memória RAM/Swap, pode testar a opção -j sem nenhum número, desta forma o make não irá limitar o número de atividades simultâneas.
?? possível também calcular a duração das compilações para avaliar qual o melhor valor para a opção -j, para isso utilize o comando time. Por exemplo:
# ./configure
# time make
Efetuei um teste compilando a aplicação RRDTools em um servidor Dual Xeon. A compilação normal durou (real) 1m38s. Já compilando com a opção -j5 a duração foi para 46s ou seja 54% mais rápido.
17th novembro 2005, 07:58 pm
O CPAN (Comprehensive Perl Archive Network) é o repositório web central para módulos e extensões para Perl. Ele é formado por vários servidores distribuídos pelo mundo que podem ser utilizados para facilitar a instalação e atualização de recursos adicionais a linguagem Perl.
Normalmente utilizo o CPAN, quando instalo no servidor alguma aplicação feita em perl que necessita de módulos não fornecidos pela distribuição que estou utilizando.
Para abrir uma shell do CPAN, utilize o comando:
# perl -MCPAN -eshell
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')
cpan>
Ao abrir uma shell, você poderá solicitar ajudar utilizando o comando ? ou help. Entre os comandos disponíveis, acredito que o mais utilizado é o comando install, para adicionar novos módulos.
Para sair do shell, utilize o comando quit.
Também é possível executar um dos comandos do CPAN de modo não interativo. Para isso basta usar a sintaxe:
# perl -MCPAN -e 'install Bundle::Apache::ASP'
onde Bundle::Apache::ASP é a extensão que desejamos instalar.
Acho que é isso, uma das grandes vantagens desse modelo de distribuição é a facilidade de instalar recursos sem se preocupar de onde deve baixá-los e como deverá compilá-los. ?? claro, ele não faz a instalação automática de pacotes dependentes, mas pelo menos lhe avisa o que deverá ser instalado.
16th novembro 2005, 06:26 pm
Quem utiliza o Outlook/Outlook Express já deve ter se deparado com uma corrupção do seu arquivo .PST (Pastas Pessoais). Existem diversas ferramentas que efetuam a correção desse arquivo, mas o que poucos sabem é que o próprio windows fornece uma aplicação para reparar arquivos .PST danificados: o scanpst.exe.
O scanpst pode ser localizado sob o menu Programas -> acessórios -> Ferramentas do sistema ou no diretório C:\Arquivos de programas\Arquivos comuns\System\MSMAPI\1033
No caso de pasta offline (.OST) utilizadas para acesso Offline a pastas do MS Exchange Server, pode-se utilizar a ferramenta scanost.exe localizada no diretório acima ou o próprio scanpst.exe.
13th novembro 2005, 01:23 pm
Ao instalar linux em máquinas virtuais no modo expert, sempre que se faz a configuração de rede (manualmente) fica a dúvida de qual “hardware” o software de máquina virtual esta emulando para a interface ethernet. Depois de apanhar um pouco, descobri os módulos compatíveis para as maquinas virtuais que mais utilizo:
- VMware
módulo ethernet: PCNET32
- Microsoft Virtual PC 2004
módulo ethernet: de4×5
Se por acaso você souber algum outro módulo importante (interface de video, etc) pode colaborar enviando um comentário.
8th novembro 2005, 09:01 pm
Segue alguns comandos úteis para o MySQL:
-
Alterar o valor do Auto Increment em uma tabela:
mysql> ALTER TABLE <em>tabela</em> AUTO_INCREMENT=1;
- Apresentar a estrutura de uma tabela:
mysql> desc <em>tabela</em>;
- Criar banco de dados e adicionar usuário para acesso:
mysql> USE mysql;
mysql> CREATE DATABASE bancodedados;
mysql> GRANT ALL PRIVILEGES ON bancodedados.* TO usuario IDENTIFIED BY 'senha_do_usuario';
mysql> FLUSH PRIVILEGES;
- Tirar o privilégio de um usuário:
mysql> USE mysql;
mysql> REVOKE ALL PRIVILEGES ON bancodedados.* FROM usuário;
mysql> FLUSH PRIVILEGES;
- Remover um usuário:
mysql> USE mysql;
mysql> DELETE FROM mysql.user WHERE User='tatu';
Maiores informações sobre os comandos GRANT/REVOKE
7th novembro 2005, 09:45 pm
Algumas vezes já me deparei com a dificuldade de tentar me lembrar qual era mesmo a senha que eu havia definido para o usuário root nos servidores com MySQL… depois de algumas vezes decidi guardar esta dica em algum lugar que me facilitasse recuperar quando necessário, e lá foi ela pra minha incrível base de conhecimentos em arquivo texto indexada pelo grep
. Bem, como tudo evolui, a base de conhecimentos em arquivo texto transformou-se neste blog e mais uma dica fará parte dele agora (não que a solução anterior estivesse ruim, mas infelizmente não era pública).
Para alterar a senha do usuário root siga os seguintes passos:
Linux:
- Parar o serviço do MySQL (service mysqld stop, /etc/init.d/mysqld stop, matando o processo – conforme sua distribuição);
- Reiniciar o mysql com a opção –skip-grant-tables (você poderá utilizá-la ao iniciar o mysqld manuamente ou colocando-a no arquivo de init)
- Alterar a senha do usuário root com o comando:
# mysqladmin -u root password 'nova_senha'
# mysqladmin flush-privileges
você pode alterar a senha também com o comando:
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
mysql> FLUSH PRIVILEGES;
Windows XP (com o MySQL rodando como serviço):
- Entrar nos serviços do windows (Iniciar -> Executar -> services.msc);
- Procure pelo MySQL, clique com o botão direito sobre ele e vá em propriedades;
- Pare o serviço (clicando sobre o botão parar);
- Insira no campo “Parâmetros de inicialização” o parâmetro –skip-grant-tables e clique no botão iniciar e em seguida botão Ok;
- Execute o cmd (Iniciar -> Executar -> cmd) , entre no diretório de binários do MySQL (cd c:\arquivos de programas\mysql\bin (ou onde estiver instalado));
- Alterar a senha do usuário root com o comando:
mysqladmin -u root password 'nova_senha'
mysqladmin flush-privileges
você pode alterar a senha também com o comando:
mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='root';
mysql> FLUSH PRIVILEGES;
O parâmetro –skip-grant-tables desabilita no servidor o uso do sistema de privilégios. Com isso todos os usuários terão acesso a todos os bancos de dados. Ao executar o comando Flush privileges, o servidor retorna a utilizar seu sistema de privilégios, mantendo a segurança original do serviço.
Agora se você adicionou o parâmetro –skip-grant-tables no arquivo de init, não se esqueca de remové-lo de lá, para evitar que na próxima reinicialização do serviço ele fique vulnerável. Caso seu MySQL esteja no Windows, execute os 4 primeiros passos novamente removendo o parâmetro passado na inicialização.
Update: O Artigo foi adaptado também para apresentar a troca de senhas no ambiente windows conforme sugestão do Carlos Henrique.