Posts Tagged ‘ servidor

O Pequeno (Grande) Manual da USENET

Decidi, para o bem de vocês, quebrar as Regras 1 e 2 e explicar a USENET e tudo o que se pode fazer com ela. Bem, quase tudo.

First things first,

O que é a USENET?

Pirate

Here be pirates

Bem, amiguinhos, vocês que são noobs e acham que não havia computadores antes do Google provavelmente não sabem que havia redes antes da Internet. E é lá em 1979 que nossa história começa.

Na época, redes eram lentas, grandes mainframes dominavam, homens eram homens e programavam em ASM e Pokémon ainda era um delírio na mente de um garoto japonês. O conceito de email como é conhecido hoje não existia, pois não havia domínios da internet, logo, listas de discussão também não existiam.

Eis que alguém resolveu criar um sistema para tal. Uma pessoa postaria uma mensagem em um ou mais newsgroups e quem quisesse ler e responder tinha livre acesso para tal, desde que pudesse se conectar a um servidor de relay. Os servidores eram interconectados, permitindo que, embora nem todos tivessem todos os artigos de todos os newsgroups, a experiência fosse transparente para o usuário final. Tão transparente quanto uma conexão de 8 bauds permitia, isso é.

Estrutura

Como que se identificam os newsgroups, então?, você me pergunta. Pelo nome, oras. Eles são divididos em uma árvore sem um nodo principal (puristas vão dizer que são diversas árvores, mas eu os mando à merda). Por exemplo, todos as listas sobre ciências deveriam estar no “sci.”. Por exemplo, discussões sobre matemática acontecem no sci.math.

Eis que, um belo dia, alguém resolveu que queria discutir sobre algo totalmente aleatório. Aí surgiu a árvore alt, a mais interessante para vários propósitos.

BINÁRIOS!!!111oneoneone

Binário

Binário, né?

No jargão, um binário é qualquer ‘blob’ (definir jargão com jargão: eu pratico). Uma imagem, uma música, um filme. Arquivos que não são puro texto. E eles ficam na árvore alt.binaries.

Mas a USENET é uma rede antiga, não foi projetada para essas coisas. Servidores têm de replicar conteúdo, mas se alguns bits se perderem numa mensagem de texto não há muito problema. A mensagem ainda está lá. Com binários a história já é outra.

Alternativas foram criadas e vocês usam a maioria delas hoje em dia e nem sabem porque diabos. Para prevenir maiores perdas, divide-se o arquivo em várias partes, de modo a facilitar a recuperação, e cria-se arquivos de paridade.

Sabe quando tu baixa aquele torrent e vem 435 .rar, um .svf e um .par2? Aquele arquivo veio direto da USENET e foi baixado de maneira old school. Já chego lá.

A idéia é a seguinte: o servidor A vai replicar o conteúdo do servidor B, mas o protocolo não é muito tolerante a falhas (ou tolerante demais, dependendo do ponto de vista), e partes dos artigos podem se perder no meio do caminho. Melhor que se perca um arquivo de 10MB do que um de 700, certo? Mais fácil de baixar denovo o arquivo problemático (que pode ter sido re-replicado). Mais fácil ainda é consertar dito arquivo, e para isto serve o par2. Através de um algoritmo macabro ou simples magia negra, ele consegue, muitas vezes, descobrir o quê há de errado com um arquivo rar e recuperá-lo. Coisa linda.

Mas fazer isso na mão é terrível. Aí que entra os newsreaders modernos.

Sendo moderninho

Hipster

Por favor, não seja moderninho ASSIM

Vamos começar um pouco antes. Imagine você que há quatrocentas pessoas enviando arquivos para um certo grupo ao mesmo tempo. As partes chegam entrelaçadas, um pedaço de um arquivo, depois um de outro, depois talvez uns 3 de outro, e por aí vai. Catar as partes de um arquivo grande seria infernal.

Para isto criou-se um padrão, o NZB. Ele é um arquivinho, análogo a um .torrent, que é gerado após o envio dos arquivos para um newsgroup apontando a localização de todas as partes dele. Isso permite também a indexação destes mesmos arquivos por sites, exatamente igual aos trackers de torrent.

Um cliente moderno vai abrir este .nzb e baixar automaticamente todas as partes do arquivo, verificar se precisam ser reparadas e reparar caso seja necessário, extrair tudo e te dizer “Tá tudo pronto, chefinho, quer um café?”.

E há vários clientes que suportam este padrão e vários sites que indexam. Dois clientes chamam mais a atenção, o SABnzbd+ e o Unison.

O SABnzbd+ é escrito em python e roda até em uma batata-doce, se você pedir com jeitinho. Ele é feio, só tem uma interface web, mas faz o que se propõe e o faz muito bem.

SABnzbd+

Isto pode ou não ser meu.

Este aqui está rodando no Ubuntu, mas controlo pela rede se preciso, ou até mesmo pelo iPhone.

Ele pode ser baixado AQUI e é totalmente grátis.

Ele não serve para navegar na USENET, somente para baixar de lá. Para isto é necessário um site indexador. Já chego lá.

A instalação em cada sistema é diferente, não vou detalhar aqui, mas o site é bem bom, tem uma wiki detalhada. Dê uma conferida.

A outra opção é o Unison, da Panic!

Este é pago, custa 30 dólares e só funciona no OSX, mas é o cliente mais elegante para se navegar pela USENET. Não só de binários viverá o homem, já dizia o poeta (ou seria o profeta?).

Unison

Veja bem de quem é a mensagem

A USENET ainda é utilizada para seu propósito original. Aí em cima, por exemplo, eu estou lendo a linux.kernel, a lista de discussão oficial do desenvolvimento do kernel do linux.

Alternativa de pobre: Google Groups.

O Google indexa muito da USENET e o faz de graça, mas a árvore alt. não está lá. Nada de pirataria desse jeito, mas os grupos de texto podem ser acessados, em sua marioria.

Servidores

Pra acessar essa maravilha toda, tu vais precisar de acesso a um servidor, e isto não é de graça. Sim, amiguinhos, a USENET é paga. Alguém tem que manter estes servidores e o único jeito de ganhar dinheiro é cobrando diretamente dos usuários.

Por sorte, não é caro. Eu recomendo a Supernews, que custa uns 10 dólares por mês e aceita Paypal sem compromisso nenhum.

Outras opções são a Giganews, que tem a maior retenção de todas mas é uma das mais caras e a Blocknews, que vende por tráfego. Caso esteja em dúvida, com a Blocknews dá para comprar 5GB por $2,75 e ver se gosta da idéia. Mas eu iria direto para a Supernews.

Há algumas coisas a se manter em mente quanto a esses servidores: Retenção, Número máximo de Conexões e suporte a SSL.

Retenção é a idade de um post quando ele é deletado do servidor. Com a quantidade de informações postadas na USENET diariamente, é impossível manter tudo, então após alguns meses o post é deletado. A média está em uns 400 dias, o que é bem bom. Muitas coisas são repostadas com freqüência, então não é exatamente um problema mesmo para coisas mais velhas.

Número máximo de conexões é exatamente isso, quantas conexões simultâneas do mesmo IP são permitidas. Não sei de nenhum servidor que permite conexões de mais de um IP, então nada de compartilhar contas. Mais conexões simultâneas = mais chances de baixar na velocidade máxima da sua conexão.

Suporte a SSL é a capacidade do servidor de manter conexões encriptadas. Provedores de internet podem ser malvados e reduzir a velocidade do teu acesso à USENET do mesmo jeito que fazem com torrent. Se tu encriptares o tráfego, eles não vão saber o quê tu tá fazendo e não vão te capar a conexão.

Na Supernews eu já atingi 11MBps (isto é onze megabytes por segundo, também conhecido como oitenta e oito megabits por segundo, numa conexão que obviamente não é a da minha casa) com 30 conexões simultâneas e SSL.

Segurança

Eu sou muito paranóico, então acredite em mim que eu pesquisei demais e posso te dizer com tranqüilidade que é seguro baixar da USENET. O único jeito de descobrirem o quê tu tá baixando é se tu contares (desde que uses SSL). Vai firme, os servidores não mantém logs. Agora, se você começar a enviar conteúdo…

Sites indexadores

A USENET é um lugar enorme e selvagem. Acredite em mim. Procurar qualquer coisa lá é enlouquecedor. Para resolver isto há sites que indexam o conteúdo e geram nzbs prontos para serem adicionados ao seu cliente. Os melhores são:

TVNZB.com: Só séries de TV, anda com o servidor meio instável. Grátis.

NZBs(dot)ORG: De tudo, mal categorizado, mas com uma engine de busca bem decente. Requer registro, mas é grátis.

Newzbin: O antigo gigante que recentemente se meteu em brigas contra a MPAA e foi obrigado a desativar as categorias de TV e filmes, mas as outras continuam ativas. Costumava ser invite-only e pago, ainda por cima, agora está aberto e grátis.

NZBMatrix: Feio que dói, mas o melhor atualmente. Custa algumas libras para cadastrar, mas só se paga uma vez.

Sou preguiçoso, quero tudo automático

Boa notícia é que eu também sou e já testei praticamente todas as maneiras de automatizar minha vida.

Quem acompanha muitas séries de TV sabe como é complicado baixar todas elas, ficar lembrando do dia que tem episódio novo, se tem essa semana ou não. Mas há uma solução!

O Sick-Beard é outra dessas maravilhas escritas em Python que roda até em uma banana, com vaselina suficiente.

Sick-Beard

Não me pergunte o porquê do nome.

Novamente, a instalação depende de cada sistema, então dê uma olhada na Wiki deles.

Esta maravilha faz tudo pra ti: consulta o TVRage para descobrir quando tem episódio novo, procura nos indexadores e bota a baixar no SABnzbd+ pra ti. Tem como fazer ele funcionar com outros clientes, mas ele brilha mesmo com o SAB.

Se tu quiseres, ele baixa os episódios antigos da série, move os arquivos, renomeia e organiza, adiciona sinopse, thumbnail do episódio e pôster da temporada e avisa o XBMC ou o Boxee que tem episódio novo.

Além disso, ele pode baixar o episódio no primeiro formato que aparecer, e, caso não seja 720p, baixar a versão 720p assim que ela estiver disponível e substituir na coleção.

Sensacional.

Muito bonito, mas qual a vantagem disso sobre torrent, ou por que devo pagar se torrents são grátis?

As coisas saem primeiro na USENET, já que os grupos que lançam no torrent precisam distribuir entre si os arquivos primeiro para ter seeds. Além disso, tu não estás preso ao inferno de arquivos sem seeds, a velocidade é constante e, provavelmente o máximo da tua conexão.

E já falei que as coisas saem antes lá? Quase toda esta temporada de Chuck estava aparecendo na USENET cerca de 12 horas antes de passar na TV americana. Vazava de dentro da emissora, suponho, e em 720p.

Vai lá, instala o SABnzbd+ e assina um mês ou dois da Supernews. Tu nunca mais vais querer usar torrent na vida.

E, não, não tenho medo de falar sobre isso, eu acabo comprando os DVDs ou BluRays dos filmes e séries que baixo, minha consciência está tão limpa quanto os esgotos de Paris. OH WAIT-

Ah, a ironia

WTF?

Han? Erro com o MSSQL eu entendo, mas o Linux Today rodando MSSQL? É o fim dos tempos, como diria meu Tio.

Guia rápido de manutenção de servidores por ssh

O ssh (secure shell) já salvou a minha vida mais de uma vez. É muito mais prático do que FTP quando se quer fazer alterações nos arquivos do servidor e não é necessário subir ou baixar nenhum arquivo. Além disso, existe o sshfs, que é uma grande facilidade para nós usuários do Linux, que podemos montar uma pasta ssh como se fosse um sistema de arquivos local, e ter todo o conforto de editores de texto gráficos e bonitinhos 100% online.

Abalone shell
Crédito da foto: Stryker W@SP

Ela provê uma conexão segura e encriptada a um servidor remoto, e te dá uma shell completa do sistema hospedeiro, que normalmente é unix. Conhecer a linha de comando então é mais que uma mão na roda, é obrigatório. Mas muita gente não vai muito longe do ls, cd, pwd, rm, mv.

Existem dois truques que eu uso muito em todos os sites que eu administro, e realmente facilitam muito a minha vida.

Imagina a situação: no teu site tem uma centena ou mais de arquivos de backup, simples cópias de segurança de arquivos, de antes de serem modificados, e você não precisa mais deles. Sempre ouvimos que é uma boa prática nesses casos simplesmente fazer uma cópia do arquivo, adicionando .bak ao fim do nome, mas ninguém nunca nos diz porque. Esse primeiro truque é justamente para tirar proveito disso. Tendo todos os teus arquivos de backup terminando em .bak, não importa quão espalhados eles estejam na árvore de diretórios, basta rodar este comandinho:

find . | grep .bak | xargs rm

(Antes que os xiitas venham reclamar, sim, dá pra juntar o find com um grep, mas o grep é mais rápido que o find para esse caso.)

Explicando por partes: Cada “|” (chamado de pipe) concatena comandos, passando a saída de um comando para o próximo. O primeiro comando, find ., lista recursivamente todos os arquivos do diretório atual. A saída é passada para o grep, que procura nessa lista por arquivos que contenham a expressão .bak no nome (e é uma boa rodar só os dois primeiros comandos para ter certeza de que não tá aparecendo nada extra aí). Por fim, temos o todo-poderoso xargs, que tem mais usos do que o próprio Stallman conhece, executa o comando rm em cada nome desta lista.

A segunda situação é quando precisamos fazer uma faxina no servidor, mas não sabemos o que diabos está pesando 1,5GB. Isso é facilmente resolvido com este lindo comando:

du -ch

(É fácil de lembrar dele, lê “duch”, que soa a “douche”, um xingamento em inglês).

Este comando vai também listar recursivamente todos os diretórios (mas só eles, não os arquivos), e te dar o tamanho de cada um, e o total da pasta atual no fim. Extremamente útil.

A Importância do Backup

Eu era um cara negligente com backups, como a grande maioria. Confiava cegamente nos meus HDs, e mais ainda na minha falta de capacidade de estragar tudo. Até a terceira ou quarta vez que eu perdi dados por falha de hardware ou puta bocabertice mesmo. Aí eu comecei a levar a sério esse negócio de becápi.

Hoje, por exemplo, eu fui fazer a atualização de um maravilhoso plugin que eu uso, o XHTML Video Embed, que gera código XHMTL strict para vídeos do youtube, bastando usar tags e o endereço do clipe. Eu dependo um monte desse plugin, todos os posts com vídeos daqui estão com ele. O problema é que, por algum motivo, a versão nova que saiu hoje não funciona. Dá caca total, nem ativa o plugin. E agora, José? Simples: restaurar o backup. Dois minutinhos depois eu estava com a versão velha (e estável) do plugin rodando.

Agora você me diz que fazer backup é chato, tedioso, para pessoas com muito tempo livre. E eu digo que sim, pode até ser, mas como eu sou um cara legal, vou te ensinar a automatizar isso tudo.

Vamos começar do começo, e vamos por partes, como diria Jack.

Você vai precisar, indispensavelmente, de um servidor com suporte a cronjobs. Se o seu servidor não suporta, corra e assine outro, porque é um servidor muito furreco esse que você tem. Eu recomendo o Dreamhost.

A seguir, você precisa criar uma pasta para armazenar os backups no seu servidor. Por favor, faça um serviço de gente normal, e deixe essa pasta fora da webroot, que é aquela pasta acessível pelo navegador, senão qualquer jaguara pode acabar por descobrir onde está teus backups e te pegar a DB, dados confidenciais, etc, etc.

Dentro desta pasta você precisa de pelo menos três outras pastas: uma para os backups diários, outra para os semanais, e outra para os mensais. Já deu para ver aqui que você fará 3 scripts, certo? Vamos detalhá-los.

O primeiro script toma conta dos backups diários e de remover os que já têm mais de uma semana. O seguinte código deve ser salvo num arquivo de texto, e você deve dar permissão de execução (vulgo chmod +x) nele. No cron, que provavelmente fica no painel do seu servidor, adicione este script para ser rodado diariamente. O código é esse:

#!/bin/bash
suffix=$(date +%y%m%d)
nice -19 tar -czf caminho_do_backup_diário/backup-$suffix.tar.gz pasta_a_ser_salva
mysqldump –opt -uuser_do_mysql -psenha_do_mysql -h host_do_mysql database | gzip -c > caminho_do_backup_diário/database-$suffix.sql.gz
find caminho_do_backup_diário -type f -mtime +7 | xargs rm

Substitua o que está marcado pelo que deve ser substituído.

Explicando: a primeira linha somente informa o sistema de que isto se trata de um shell script. A segunda linha gera um sufixo baseado na data, de modo a que cada arquivo seja gerado com um nome diferente. A terceira linha compacta com o tar.gz a pasta que você quiser. Ela pode ser repetida para compactar em arquivos separados pastas separada, só trocar o nome do arquivo (no caso, backup-*). A terceira linha fará um dump da DB e a compactará. Finalmente, a última linha procura por arquivos com mais de uma semana e os exclui.

Para o backup semanal, o script é o mesmo, somente trocando o caminho_do_backup_diário pelo caminho_do_backup_semanal. Além disso, a última linha deve ser:

find caminho_do_backup_semanal -type f -mtime +30 | xargs rm

De modo a deletar todos os arquivos com mais de um mês. Este script deve ser posto no cron para rodar semanalmente.

Finalmente, o script do backup mensal também deve ser igual aos anteriores, mas removendo a última linha, ou substituindo o -mtime +x pelo valor em dias a guardar o backup. Eu prefiro guardar para sempre, já que eles não são muito grandes, mas 365 deve ser um bom valor para isso. Lembre-se também de alterar o caminho do backup para a pasta de backups mensais, para que um script não interfira no outro. Novamente, mande o cron rodar este script mensalmente.

Agora você deve estar com um bom sistema de backup criado. Você terá sempre um backup de cada um dos últimos 7 dias, um de cada semana do último mês, e um de cada mês, podendo assim reverter para o que for mais conveniente. Vale lembrar que, se der uma zica geral no teu servidor, isso não vai te salvar. Em tese, a empresa de hospedagem deve se responsabilizar pelos dados, mas, se não der… Bem, ferrou. Isso deve aumentar as tuas chances, mas vale a pena baixar estes backups de vez em quando também para o PC.

Outra possibilidade seria enviar estes backups para o email, usando o comando mail. Mas isto não é exatamente seguro, então pode-se criptografar estes backups com o pgp. Mas isso é só para os extremamente paranóicos.

Estou indo implementar isso agora.

A diferença dos tipos de RAID

RAID

(Clicke na foto para ampliar)

Nova microarquitetura da Intel: Agora Six-Core

O site betanews publicou um artigo falando da nova microarquitetura da Intel, que virá para substituir a atual Core, no fim do ano.
A nova microarquitetura conta com um cache L3 compartilhado de 16 megas, e a possibilidade de ter de dois a 8 cores num mesmo processador.
Mas a grande novidade mesmo é a capacidade de rodar simultaneamente duas threads por core (atualmente, com o hyperthreading, as threads são alternadas).

Outras novidades são a remoção do FSB (que a AMD já fez há tempo), podendo o processador se comunicar diretamente com as memórias, o que é mais eficiente em termos de energia e velocidade, e que os processadores serão fabricados a 45nm.

intel

Os quadcores agora também serão “four way”, ou seja, 4×4, cada core podendo se comunicar com qualquer outro (isso não acontece atualmente na linha Core 2).

Claro que esses processadores serão bem caros quando forem lançados, já que são processadores para intusiastas (a Intel vai atualizar a linha de proessadores Intanium para servidores também, agora com 30MB de cache L3), mas podemos esperar ver alguns computadores com esses processadores em nossas casas em pouco tempo. Eu sei que quero um. Ou mais.

Configurando servidores no Fedora

O Fedora é um excelente sistema para servidores, mas algumas pessoas têm dificuldades para instalar os pacotes necessários e configurar corretamente os serviços para rodar os mais diversos servidores. Aqui tem algumas dicas de como fazer isso.

Antes de tudo, utilitários gráficos para gerenciar os servidores:

yum install system-config-users system-config-services

Apache (com PHP)

yum install php httpd system-config-httpd mod_ssl
/sbin/chkconfig httpd on
/sbin/service httpd restart

MySQL

yum install mysql-server mysql-administrator mysql mysql-gui-common
/sbin/chkconfig mysqld on
/sbin/service mysqld restart

E, se você quiser suporte a MySQL no PHP:

yum install php-mysql

Configuração: (Substitua novasenha por uma senha boa)

mysql -u root
Você deve estar vendo um prompt escrito mysql>
SET PASSWORD FOR ”@’localhost’ = PASSWORD(‘novasenha‘);
SET PASSWORD FOR ”@’localhost.localdomain’ = PASSWORD(‘novasenha‘);

VNC

yum install xinetd vnc vnc-server
/sbin/chkconfig vncserver off
/sbin/chkconfig xinetd on

Configuração:

gedit /etc/xinetd.d/vnc1024

Cole isto no arquivo:

service vnc1024
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query 127.0.0.1 -geometry 1024×768 -depth 24 -once -fp unix/:7100 -securitytypes=none
}

E mais este arquivo:

gedit /etc/xinetd.d/vnc1024x8

Cole isto:

service vnc1024x8
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query 127.0.0.1 -geometry 1024×768 -depth 8 -once -fp unix/:7100 -securitytypes=none
}

Agora configure o GDM para XDMCP:

gdmsetup

Desmarque “Recusar Conexões TCP ao XServer”
Desmarque “Permitir login remoto de administrador”

Agora vá até a aba “Remoto” e:
Mude a caixa de seleção superior de “Saudação Remota” para “Igual à Local”
Clique em “Configurar XDMCP”
Clique em “Honrar Requisições Indiretas”

Agora vá até a aba “Acessibilidade” e desmarque “Habilitar Acessibilidade de Login”.

Agora feche o gdmsetup e edite o arquivo /etc/services, adicionando as seguintes linhas ao final dele:

vnc1024 5900/tcp # VNC & GDM
vnc1024x8 5901/tcp # VNC & GDM

Abra as portas 5900 e 5901 TCP e 177 UDP às permições de seu firewall e reinicie o X.

SSH

yum install openssh openssh-clients openssh-server pam_ssh pam_abl
/sbin/chkconfig sshd on
/sbin/service sshd restart

Configuração:
Abra o arquivo /etc/ssh/sshd_config

Mude

PermitRootLogin yes

Para

PermitRootLogin no

(Por questões de segurança)

SMB

yum install system-config-samba samba-client samba-common samba system-config-samba system-config-users

Toda a configuração é feita através do utilitário gráfico:

system-config-samba

Em Configurações do Servidor:
Na aba “Básico”:
–> Grupo: mshome
–> Descrição: Qualquer coisa funciona aqui.

Na aba “Segurança”:
–> Modo de autenticação: Usuário
–> Conta de visitante: Desabilitado
–> Encriptar senhas: Sim

Em Usuários, no menu:
–> Adicione usuário
–> Escolha o usuário e senha no Windows.

Agora para compartilhar:
–> Clique em “Adicionar Compartilhamento”
–> Escolha o nome do compartilhamento e uma descrição e as permições.

Adicione as portas do Samba no seu Firewall. No Fedora 8, está logo na primeira aba com o nome bem sugestivo de “SAMBA”.

FTP

yum install system-config-vsftpd vsftpd system-config-users

Configuração:

system-config-vsftpd

Bom, espero que isso tenha ajudado vocês a começarem a brincar com alguns dos servidores do Fedora.
Live Free.

 
SEO Powered by Platinum SEO from Techblissonline