News: Faz alguns dias que este blog está rodando em um VPS que aluguei na slicehost. Em um primeiro momento fiz a instalação Lamp padrão, contudo isso resultou em um pequeno inconveniente, consumo excessivo de memória ram:
# Consumo de memória com apache
mysql + apache2 rodando wordpress = 165 mb ram
Considerando que meu VPS tem apenas 256 mb de ram resolvi trocar o apache pelo nginx, o resultado foi bem agradável:
# Consumo de memória com nginx
mysql + fcgi + nginx rodando wordpress = 65 mb ram
O processo de instalação foi extremamente simples, e as configurações custaram alguns poucos momentos no google.
# Pacotes necessários:
apt-get install nginx mysql-server php5 php5-cgi php5-mysql spawn-fcgi
Arquivo de configuração do domínio no nginx
cat /etc/nginx/sites-enabled/tarzxvf.com
server {
listen 80;
server_name tarzxvf.com www.tarzxvf.com;
access_log /var/log/nginx/tarzxvf.com.access.log;
location / {
root /var/www/tarzxvf.com;
index index.html index.htm index.php;
# this move feed requests to feedburner
if ($http_user_agent !~ FeedBurner) {
rewrite ^/feed/ http://feeds.feedburner.com/tarzxvf last;
}
# this serves static files that exist without running other rewrite tests
if (-f $request_filename) {
expires 30d;
break;
}
# this sends all non-existing file or directory requests to index.php
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/tarzxvf.com/$fastcgi_script_name;
include fastcgi_params;
}
}
Arquivo de inicialização do fcgi
cat /etc/init.d/spawn-fcgi
#! /bin/sh
### BEGIN INIT INFO
# Provides: spawn-fcgi-php
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts FastCGI for PHP
# Description: starts FastCGI for PHP using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=spawn-fcgi-php
PID=/var/run/spawn-fcgi-php.pid
DAEMON=/usr/bin/spawn-fcgi
DAEMON_OPTS="-f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -P $PID"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $NAME: "
start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
echo "done."
;;
stop)
echo "Stopping $NAME: "
start-stop-daemon --stop --pidfile $PID --retry 5
rm -f $PID
echo "done."
;;
restart)
echo "Stopping $NAME: "
start-stop-daemon --stop --pidfile $PID --retry 5
rm -f $PID
echo "done..."
sleep 1
echo "Starting $NAME: "
start-stop-daemon --start --pidfile $PID --exec $DAEMON -- $DAEMON_OPTS
echo "done."
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
RemoveHandler .py
Precisei disso para impedir a execução dos arquivos .py em uma pasta de um servidor, enquanto eu tentava por chute quase acertei a sintaxe
De qualquer forma, basta colocar no .htaccess e está resolvido.
E aqui achei várias dicas que podem ser úteis um dia!
OK, então você usa linux e conhece o ‘top‘, item básico no repertório de qualquer sysadmin, que permite acompanhar algumas informações sobre a carga do sistema e processos. Essa ferramenta antiga e poderosa, é de uma idéia tão simples porem tão prática, que ganhou um termo para designar ferramentas semelhantes, ferramentas “top-like“.
Para se enquadrar em uma ferramenta top-like o candidato tem que:
Fiz uma lista com 16 ferramentas top-like disponíveis no Ubuntu 9.04. Enquanto fazia a pesquisa, encontrei pelo menos mais meia dúzia sem pacotes para o ubuntu, e se for considerar as que eu não encontrei esse número deve subir consideravelmente.
Esse meme está rolando em muitos planetas. Fiquei curioso e resolvi brincar!
Aí está o resultado.

É algo que me irrita profundamente, servidores mal aproveitados que por sua vez demandam mais servidores! Alem dos óbvios custos financeiros envolvidos, existe também o fator “Sysadmin puto da cara” e “Sysadmin pagando o pato por falha no desenvolvimento”.
Essa é a recomendação de leitura da semana:
Hardware is Expensive, Programmers are Cheap
Hardware is Expensive, Programmers are Cheap II
Vale citar que esses textos foram escritos em resposta a esse outro:
Hardware is Cheap, Programmers are Expensive
Recebi o convite essa tarde e já estou com o UbuntuOne rodando no meu laptop. O processo de instalação foi extremamente simples, não levou 5 min. No pouco uso que fiz ainda não encontrei nenhum problema, o próximo passo é instalar no dekstop lá onde eu trabalho.
Até agora só não me agradou o fato de o programa criar a pasta Ubuntu One no meu $HOME. Eu sou meio nervoso em se tratando da organização do meu $HOME, mas acho que posso me acostumar, ou achar onde mudar essa configuração e acrescentar um . (ponto) no início da pasta, afinal o que os olhos não vêem o cérebro não processa =)
E aqui quem quiser pode ver uma screenshot do UO rodando.
Não sei quando foi, mas aconteceu. Era algo que eu imaginava a algum tempo: um dropbox da vida mantido pela canonical e integrado ao Ubuntu. O projeto em Beta se chama UbuntuOne, e infelizmente depende de um “invitation” para participar ( eu já solicitei o meu ).
Na versão gratuita são oferecidos 2gb de espaço para o usuário, um ícone na área de notificação permite o acesso as funcionalidades do produto, que no momento são: integração com o Nautilus, capacidade de compartilhar arquivos com outros usuários, sincronização e uma interface Web que permite o acesso aos dados.
Alem da versão gratuita,existe também a versão paga, que por enquanto tem como único diferencial o espaço, são 10gb por 10 doletas mensais.
Antes que alguém pergunte, o protocolo em que está sendo desenvolvido o UO é livre e o cliente é open source. Contudo o servidor é da Canonical e não existem planos de disponibilizar o código fonte! Mas nada impede que alguém desenvolva um servidor próprio baseado nas especificações públicas.
Em um futuro próximo vai ser liberado uma API(fato) em cima do CouchDB(meio-fato) para que desenvolvedores possam projetar suas apps e trabalhar diretamente com o UO. Isso vai servir para facilitar a sincronização de dados dos diversos aplicativos do Ubuntu entre máquinas diferentes.
Update:
Leia também: http://tarzxvf.com/ubuntu-one-primeiras-impressoes
Ontem a noite fiz a instalação do Ubuntu 9.04, e até agora só tive 4 problemas. São eles:
- O driver Open Source para placa de Vídeo ATI as vezes “pisca” a tela.
- O driver proprietário fglrx causa um crash no sistema.
- O Liferea trava logo depois de abrir.
- O ctrl+alt+backspace não funciona.
Os 3 primeiros são bugs, e só me resta esperar uma atualização. Já o lance do backspace dizem que é feature! Tá bom…
Enfim, para desabilitar essa “feature” basta adicionar no fim do seu xorg.conf:
Section "ServerFlags"
Option "DontZap" "False"
EndSection |
Outra alternativa válida é rodar:
pascal@workaholic:~$ sudo apt-get install dontzap
seguido de:
pascal@workaholic:~$ dontzap – -disable
update 1:
O Eri foi alem e consultou as fontes do texto sobre latência, e indicou esse como leitura para entender bem o conceito.
ps. eu li e confirmo, realmente vale a pena ler o texto
Oi, tudo bom?
Para o sysadmin que ainda não leu, LEIA!
Leia com cuidado, atenção, reflita sobre e depois leia de novo!
http://lonesysadmin.net/2008/09/08/downtime/
http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it
nota mental: talvez seria uma boa eu traduzir e postar por aqui!
E se possível eu gostaria de ver um post do Eri Ramos sobre o tema! Acho que ele pode ter uma boa história para contar
Em 2007 eu fiz uma experiência com modens/routers. A pesquisa englobou links estáticos e dinâmicos de uma fornecedora de internet aqui do Sul. Eu escaniei 65.025 possíveis hosts, procurando por equipamentos com as portas 23/80 (que pode caracterizar um router) e testei uma amostra dos resultados utilizando as senhas padrões dos dispositivos.
O trabalho foi bem manual e me tomou aproximadamente 2 semanas porem trouxe algumas conclusões interessantes, como por exemplo:
dentre o pessoal que usa 3com o habito de trocar a senha padrão é bem maior se comparado ao pessoal que usa dlink. Mas isso é bem óbvio né? E dentre os dlinks somente 30%~40% trocava as senhas dos equipamentos. Isso significa que 6 ou 7 em cada 10 pessoas com dlinks mantinham a senha default.
Nos últimos 2 meses tem se falado muito a respeito de uma botnet de modens/routers, segundo as informações disponíveis ela compreende um grupo de equipamentos que permite ao atacante instalar um ‘novos software’ com alguma facilidade. Depois de instalado, esse worm se conecta a canais de mirc a espera de comandos do dono da botnet. Alem é claro de procurar novos equipamentos para infectar, inclusive testando as senhas default.
Eu resolvi repetir a experiência em menor escala. Como da ultima vez, escrevi um código que busca por routes/modens, e em seguida tenta logar no equipamento e me retornar o DNS usado. Fiz o script baseado em um Router DL-500B. E qual a surpresa?
Em 255 hosts estáticos escaniados encontrei 16 possíveis roteadores, 8 deles eram DL-500B e 5 deles logaram com a senha default e me retornaram o DNS. Pois é, nos últimos 2 anos as coisas não mudaram muito.
Você percebe a gravidade dessa situação? Só para citar como exemplo a questão do DNS, alguém mal intencionado poderia trocar os servidores DNS do equipamento, por um DNS próprio que aponte para sites falsos. Dessa forma seria bem fácil roubar usuários e senhas de serviços populares como o gmail, hotmail, ou até mesmo dados bancários. Considerando ainda que os links estáticos dessa fornecedora são para uso empresarial a situação fica ainda pior.
Para quem ficou curioso, a base do script que faz o scan é essa:
#!/usr/bin/python import os import re rede = 'x.x.x.' for i in range(255): final = str(i) tmp = os.popen("nmap -PN -p80,23 " +rede+final).read() if (re.search("open telnet",tmp)!=None) and (re.search("open http",tmp)!=None): print "Provavelmente um router: ",rede+final |
Já o resto do script eu não vou postar, para evitar que os kids façam bobagem!

