Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Programas    

ssh: problemas com sessões ssh inativas?


Comentários  7
Visualizações  
59.837

Os usuários e administradores de sistema que acessam servidores remotos através de sessões SSH podem conhecer bem o fato: depois de algum tempo sem fazer nada na sessão do ssh (por exemplo: enquanto come um sanduíche ou joga uma partida de Starcraft 2), a conexão cai e tem que ser refeita: usuário, senha, abrir esse ou aquele arquivo, tudo de novo. Multiplicando isso por várias sessões que um administrador de sistema costuma manter ao mesmo tempo, acaba virando algo chato, uma dor de cabeça. Mas existe uma solução para que esse problema não ocorra com tanta frequência…

Leia mais

Programação    

Postando no Twitter via linha de comando


Comentários  8
Visualizações  
53.992

Assim como muitos, eu acabei entrando no Twitter, um serviço de “micro-blog“. Eu não uso freneticamente mas até que é legal para acompanhar algumas coisas e anunciar outras. Tem que usar um pouco da imaginação para explorar a ferramenta. Assim sendo, eu encontrei por aí uma dica muito legal de como postar no twitter via linha de comando. Podemos utilizar o comando curl para fazer o post, da seguinte forma: curl -u USUARIO:SENHA \ -d status=”Testando um post do twitter via linha de comando no Linux… Será que funciona?” \ http://twitter.com/statuses/update.xml Lembre-se de substituir o USUARIO e SENHA pelo seu usuário e senha do site Twitter. A sua frase vai na variável status, como deu pra perceber no comando. É, até que funciona sim! Como sempre, na linha de comando, você consegue integrar esse comando com qualquer shell-script para ficar postando no twitter automaticamente, seja lá o que for que você quiser. Alguém aí tem bastante criatividade? Sim… um shell-script. Deixa eu ver se consigo fazer um aqui, rapidinho: #!/bin/bash # # Configuração USUARIO=”seu_usuario” SENHA=”sua_senha” CURL=”/usr/bin/curl” if [ -z $1 ]; then echo “Use: $0 ” exit 1 fi # Go for it $CURL -u $USUARIO:$SENHA \ -d status=`echo $@ […]

Leia mais

Linux    

CentOS: Removendo pacotes 32-bits nos sistemas 64-bits


Comentários  2
Visualizações  
37.133

Ok ok, juro que esta vai ser uma dica rápida, mas bastante útil! Logo quando surgiu os computadores de arquitetura 64-bits, o Linux foi um dos primeiros sistemas operacionais a suportar a arquitetura completamente. Desde então, o uso dessa arquitetura aumentou bastante. Só pelo título, vai vir gente aqui falando: se eu remover todos os pacotes 32-bits, algumas coisas que dependem disso (como Flash, plugin de Java e uma série de “probleminhas“) não irão mais funcionar! É por isso que até hoje a gente vê que as distribuições em versão 64-bits mantém pacotes 32-bits para compatibilidade. Na verdade, minha opinião pessoal, ou seja, Hugo aqui falando, é que instalar uma versão 64-bits em um desktop gera mais problemas do que solução. Eu particularmente prefiro instalar 32-bits e ter tudo funcionando sem dor de cabeça, perdendo um pouco de desempenho (tá, em um desktop geralmente não se tem muitos GB de RAM, e também não se fica compilando coisas toda hora, então a perda de desempenho não é tããão grande assim). Só que em servidores é bem diferente. Eu não vou usar essas frescuras que dão problema, então eu quero um sistema verdadeiramente 64-bits! Para isso eu preciso remover todos os […]

Leia mais

Servidores    

Apache: Redirecionando domínios antigos para novos


Comentários  4
Visualizações  
37.459

Às vezes queremos redirecionar antigos endereços para novos. Por exemplo, a antiga Página do Eitch tinha todas as suas URLs dentro do subdiretório /eitch/_pagina_, e agora está tudo na raiz. Como eu poderia fazer com que todos os links antigos continuassem a funcionar, agora com a nova URL? No Apache, podemos utilizar o mod_rewrite para fazer isso.

Leia mais

Programação    

Shell-Script: Reconexão Automática


Comentários  4
Visualizações  
32.369

Este shell-script verifica se uma máquina está conectada na rede, e caso não esteja, reconecta-se de alguma forma. Para funcionar, além do script é necessário também o agendador de tarefas crontab. O script, checkConn.sh: #!/bin/bash # # IP de Teste TEST_IP=”74.125.47.147″ # UDHCPC UDHCPC=/sbin/udhcpc if ! `ping -c1 $TEST_IP > /dev/null 2>&1`; then $UDHCPC -i eth0 -q else exit 0 fi O TEST_IP é um IP da Internet para que o ping seja feito. Neste exemplo, usei um dos IPs do Google. Também, neste caso utilizei o cliente DHCP UDHCPC. Em resumo, este script pinga um IP e caso não haja resposta, executa o udhcp pedindo um novo IP. É uma solução simples e não é totalmente segura. Por exemplo, se o IP que tentamos pingar está fora, ao invés da própria máquina, ele vai executar mesmo assim. Com pequenas alterações, podemos colocar o dhclient para ser usado, ao invés do udhcpc. Ou também podemos colocar depois do “if” quaisquer comandos (como por exemplo, um log) que acontecerão quando a conexão falhar. Escolha um intervalo para ficar executando este script. Aqui colocarei o script para ser executado de 2 em 2 minutos. Para fazer o agendamento, usamos o crontab executando […]

Leia mais

Linux    

at: acordando com um alarme personalizado


Comentários  3
Visualizações  
23.222

Essa é para quem quer acordar de manhã com um alarme de sua escolha! Esta técnica não é nada nova, utilizo faz alguns vários anos, mas se tornou bastante importante ultimamente devido ao meu incrível feito de desligar o alarme do celular automaticamente sem nem acordar. O comando at no Linux faz o que chamamos de agendamento de tarefas. Apesar de que temos o crontab que faz isso muito bem, o at serve para coisas bem imediatas. Enquanto no crontab você programa as tarefas para serem executadas em um certo período, com o at você procura para algo ser executado uma vez e pronto. O que vamos fazer aqui é fazer o at tocar uma música de nossa escolha em um certo horário. Antes de mais nada, você vai precisar verificar se o daemon atd está sendo executado, ele é necessário para verificar o que está agendado e executar na hora certa. A grande maioria das distribuições Linux já vem com ele habilitado por padrão, mas não custa verificar: $ ps ax | grep atd 2856 ?        Ss     0:00 /usr/sbin/atd Ok, agora que ele está rodando, precisamos de um tocador de sons. Utilize o mpg321 para tocar .ogg, o ogg123 […]

Leia mais

Servidores    

iptables: Como redireciono o tráfego de toda uma porta para um servidor meu?


Comentários  0
Visualizações  
27.070

Esta pergutna é muito importante. Suponhamos que você queira redirecionar o tráfego de envio de e-mails de toda a sua rede para um servidor de preferência, como por exemplo, um servidor interno que você tenha. Assim, ao invés de os usuários da sua rede utilizarem outro servidor SMTP, serão obrigados a sempre usar o servidor SMTP que você escolher. As linhas abaixo são necessárias para fazer essa tarefa. Se o seu servidor SMTP for na própria máquina do filtro IPTables: iptables -t nat -A PREROUTING -p tcp –dport 25 -j REDIRECT –to-port 25 Caso seu servidor SMTP seja o 192.168.0.2, na porta 25: iptables -t nat -A PREROUTING -p tcp –dport 25 -j DNAT –to 192.168.0.2:25 Caso você queira redirecionar para apenas o SMTP do seu provedor, substituindo o 256.103.245.3 pelo IP do servidor SMTP do seu provedor: iptables -t nat -A PREROUTING -p tcp –dport 25 -j DNAT –to 256.103.245.3:25 E por aí vai. Qualquer endereço, seja qualquer for ele, que o destino seja a porta 25, o filtro irá redicionar a conexão para onde quiser. Assim você pode evitar problemas de uma migração por exemplo, ou obrigar os usuários da sua rede ou de seu provedor a usarem […]

Leia mais

Servidores    

Apache: Eu tenho muitos domínios virtuais, como posso fazer para gerar logs separados de cada um?


Comentários  0
Visualizações  
22.048

Se você usa o Apache para apenas alguns sites, você nunca passará por este problema. Mas em servidores em que a quantidade de domínios virtuais é muito grande, surge a necessidade de você separar os logs de acesso para cada um dos dominios virtuais, com o fim de fazer a análise destes logs e apresentar estatísticas para os usuários de cada domínio (O Webalizer faz isso). Mas para cada arquivo de log, o Apache abre um processo de escrita, e o sistema tem um certo limite de processos, ou seja, o Apache só poderá abrir alguns poucos processos para escrever nos logs. Para resolver isso, existe um utilitário chamado split-logfile (que vem junto com o Apache) que separa os logs de acordo com o domínio virtual. Para fazer funcionar, primeiro retire todos os logs dos seus domínios virtuais e adicione apenas as seguintes linhas de log na configuração principal do seu servidor (e não do domínio virtual): LogFormat “%v %h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined LogFormat “%v %h %l %u %t \”%r\” %>s %b” common< CustomLog “/var/www/logs/access_log” combined ErrorLog “/var/www/logs/error_log” As primeiras duas linhas vão criar o formato da linha de log que o Apache irá […]

Leia mais

Servidores    

Apache: Como posso bloquear outros sites de fazer links diretos em meus arquivos?


Comentários  2
Visualizações  
24.415

Geralmente quando você tem um site grande, alguns usuários sem ética começam a copiar tudo e deixar links diretos para os seus arquivos em páginas próprias. Para evitar muitos casos disso, pode-se usar o mod_rewrite. É só colocar as seguintes linhas dentro da sua configuração principal ou de um domínio virtual (<VirtualHost>): RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?nomedodominio\.com\.br/.*$ [NC] RewriteRule \.(mid|wav|mp3|zip|avi|rm|ram|swf|mpg|wmv|pdf)$ http://www.nomedodominio.com.br/download_negado.php [NC,R,L] Este exemplo acima fará com que os sites que não estão inclusos no dominio www.nomedodominio.com.br tenham seu acesso negado ao link direto para os arquivos com as extensões: .mid; .wav; .mp3; .zip; .avi; .rm; .ram; .swf; .mpg; .wmv; .pdf. Ou seja, se alguma outra pagina fizer um link direto para um arquivo .mp3 do seu servidor por exemplo, ao invés dele pegar o arquivo .mp3, ele cairá na página http://www.nomedodominio.com.br/download_negado.php, que poderá conter um aviso de que o download direto foi negado.

Leia mais

Servidores    

Apache: Mostrando páginas de um servidor Intranet num servidor Internet


Comentários  0
Visualizações  
18.485

Às vezes você se depara com uma configuração em que você tem um servidor Apache rodando para a Internet, e outros servidores rodando internamente. Só que como fazer para que os usuários da Internet acessem os vários servidores internos? Uma solução seria configurar o firewall para que redirecione as respectivas conexões para os servidores internos via NAT. Mas o problema disso é que você não consegue redirecionar na mesma porta de acordo com o nome do host, ou seja, não tem a habilidade de fazer uma configuração de Domínio Virtual no firewall. Vamos supor que eu tenha três servidores internos e um externo. Cada um destes servidores internos carrega um site diferente, rodando sob Linux e Apache (SIM!), enquanto que no servidor externo, eu tenho um Apache rodando com alguns sites simples. Como fazer para que este Apache no servidor externo mostre aos usuários da Internet as páginas que estão nos servidores internos? Para solucionar este caso, você pode simplesmente utilizar o poderoso mod_rewrite para pegar todo um endereço da rede Interna e colocar disponível no seu servidor Internet transparentemente para o usuário. No servidor externo, você pode colocar as seguintes linhas na configuração principal ou dentro de um domínio […]

Leia mais