Hoje foi lançado oficialmente a versão 8 do FreeBSD, apesar de as ISOs estarem disponíveis desde o dia 22. Nessa versão apareceram novidades realmente excitantes, como por exemplo a versão 13 do sistema de arquivos ZFS finalmente considerado estável e pronto para ser usado em produção. Os subsistemas USB, rede, TTY e Jails foram violentamente aprimorados. Vários drivers de dispositivos foram adicionados, assim como novos protocolos de rede e atualizações de outros. Uma lista completa das novidades pode ser encontrada AQUI. As imagens para download podem ser encotradas AQUI.
Comandos e parâmetros da semana
November 20, 2009Durante essa semana aprendi uns comandos e parâmetros interessantes para o FreeBSD:
Grep colorido
Eu sei, é frescura, mas é legal, o parâmetro –colour=auto do grep no FreeBSD deixa o texto que casou com a expressão usada destacado em vermelho.
Cmdwatch, um watch (do linux) para FreeBSD
Um comando que eu sentia falta era o watch do Linux, conheci o cmdwacth que faz o mesmo trabalho, para instalar acesse /usr/ports/sysutils/cmdwatch e dê um make install clean.
No “Freeba” não tem tac, vai de tail -r
Outra coisa que precisei essa semana, listar o conteúdo de um arquivo invertendo a saída, no Linux tem comando tac, no FreeBSD você pode usar o tail -r.
Usando PF com FIBs no FreeBSD
November 17, 2009Com o advento das múltiplas tabelas de roteamento no FreeBSD (FIB) ficou muito fácil distribuir certos tipos de tráfego por determinados links. Por exemplo, vamos supor que temos 2 links com respectivos gateways 192.168.1.254 e 10.10.1.254, para adicionar as duas rotas como default em 2 tabelas diferentes faça o seguinte:
- route add default 192.168.1.254
- setfib 1 route add default 10.10.1.254
Agora temos a tabela 0 com a rota default 192.168.1.254 e a tabela 1 com a rota default 10.10.1.254, agora vamos enviar todo tráfego para porta 25 para o segundo link (10.10.1.254) usando o PF:
- pass in quick on $int_if from any to port 25 rtable 1
Fonte: Lista do FUG.
Remontando partições no FreeBSD
November 17, 2009Para remontar uma partição no FreeBSD enquanto ela está sendo usada use o parâmetro -u do comando mount. Por exemplo, você precisa remontar uma partição para adicionar as flags noexec, nosuid e noatime. O comando ficaria assim:
- mount -urw -o noexec,nosuid,noatime /particao.
O paradoxo do Exterminador do Futuro
November 4, 2009Quase não consegui dormir essa noite pensando sobre o que James Cameron quis fazer na série O Exterminador do Futuro, não sei se ele não tem a menor noção dos paradoxos de viagens no tempo ou se ele sabia o que estava fazendo. Mas bem, considerando que ele sabia o que estava fazendo, fui obrigado a fazer diagramas essa noite tentando colocar no papel a origem “dos” John Connor que viriam a existir no futuro. Encontrei esse excelente artigo sobre o problema, deixei minha opnião como um comentário do artigo. Vocês também devem ter ficado bitolados com o fato de o filme dizer que o John Connor enviou Kyle Reese de volta no tempo para proteger sua mãe e esse veio a ser o seu pai. Mas, se John Connor o enviou no tempo, indiretamente para ser o seu pai, como diabos ele já existia no futuro??? Leiam o artigo, é uma boa teoria do que se passa na série.
Novidades do Bash 4
September 29, 2009Algumas novidades na nova versão do Bash me deixaram empolgado.
Vetores associativos
Esse recurso permite criar “dicionários” em bash, para ativá-lo use declare -A <nome_do_vetor>, exemplo:
declare -A lista
lista['nome']=”Danilo Egea”
lista['idade']=21
lista['sexo']=”nao lembro quando foi a ultima vez”
Para recuperar os valores use ${lista['nome']}, exemplo:
echo ${lista['sexo']}
nao lembro quando foi a ultima vez
Conversão de maiúsculo para minúsculo e vice versa
O Bash agora permite usar algumas expansões de variáveis novas, são elas: “,”, “,,”, “^” e “^^”.
Para converter a primeira letra para maiúsculo use:
nome=”danilo”
echo ${nome^}
Danilo
Para converter todas as letras para maiúsculo:
nome=”danilo”
echo ${nome^^}
DANILO
Para converter a primeira letra para minúsculo:
nome=”DANILO”
echo ${nome,}
dANILO
Para converter todas as letras para minúsculo:
nome=”DANILO”
echo ${nome,,}
danilo
Usando ** para listar arquivos
Use ** para listar todos os arquivos dentro de todos os diretórios de onde você está no momento, ** expande para uma lista de todos os arquivos, exemplo:
ls **
FONTE: Linux Magazine edição 58.
Squid com ZPH
September 19, 2009ZPH (Zero Penalty Hit) é um recurso do squid que permite a marcação de pacotes originados de algo que está em cache. Ele é usado principalmente em sistemas onde há controle de banda. Quando você faz a limitação de tráfego no servidor, os objetos que estiverem em cache também serão limitados quando solicidatos. Com o ZPH você consegue saber o que não deve passar pelo controle de banda. No seu squid.conf coloque as seguintes linhas:
zph_mode tos
zph_local 0×02
Assim o Squid irá marcar os pacotes com a flag 0×02, agora no seu firewall (IPFW no meu caso) adicione uma regra permitindo o tráfego marcado antes das suas regras de controle de banda:
ipfw -q add 50 allow ip from any to any iptos mincost
default:
set log Phase Chat LCP IPCP CCP tun command
set device /dev/cuaU0
# set speed 236800
set speed sync
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
claro:
set authname claro
set authkey claro
set phone *99***1\#
set login "TIMEOUT 10 \"\" \"\" \ CAUSE ERROR PLEASE NO CHANGE!
gin:--gin: \\U word: \\P"
set timeout 1
set ifaddr 10.0.0.1/0 127.0.0.1/0 255.255.255.0 0.0.0.0
#set ifaddr 10.0.0.1/0
# add default HISADDR
enable dns
default:
shell logger "LABEL down (up UPTIME): OCTETSIN received, OCTETSOUT sent"
claro:
shell route delete default
claro:
shell route delete default
shell route add default -interface INTERFACE
Rotacionando os logs do Squid com o Newsyslog no FreeBSD
September 19, 2009O Newsyslog é uma ferramenta do FreeBSD criada para manutenção de logs, ela é usada pelo sistema para rotacionar logs como o /var/log/messages, /var/log/auth.log e etc. O link abaixo mostra como usá-la para rotacionar e compactar os logs do Squid, não se esqueça de colocar “logfile_rotate 0” no seu squid.conf.
Lista de idéias para o FreeBSD 9.0
September 18, 2009Durante uma sessão de brainstorm entre os desenvolvedores do FreeBSD, algumas coisas interessantíssimas sairam daquelas mentes, como suporte a Xen dom0, melhorias para o VirtualBox e mais um monte de coisas.
ZFS considerado pronto para produção no FreeBSD 8
September 15, 2009O ZFS agora é considerado pronto para produção no FreeBSD 8 segundo seus desenvolvedores. Isso realmente foi uma boa notícia, agora é só esperar o FreeBSD 8-RELEASE ficar pronto.

