How to convert MDB (Access Database) to Mysql/MariaDB using MDB tools (linux tricks)

PC Pixel Art
Standard

Depois de instalar o mdbtools no Linux é necessário criar um shellscript, vamos lá:

 

#!/bin/bash

TABLES=$(mdb-tables -1 $1)

MUSER="rootdoMysql"
MPASS="senhadeRootdoMysql"
MDB="$2"

MYSQL=$(which mysql)

for t in $TABLES
do
    $MYSQL -u $MUSER -p$MPASS $MDB -e "DROP TABLE IF EXISTS $t"
done

mdb-schema $1 mysql | $MYSQL -u $MUSER -p$MPASS $MDB

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t | $MYSQL -u $MUSER -p$MPASS $MDB
done

Para rodar o script…:

./mdbconvert.sh meuBancoACCESS.mdb NomeDaBaseDoMysql

Vai restaurar tudo!

OBS só funciona se CRIAR o BANCO DE DADOS ANTES, então:

 

mysql -u root -p

Coloca a senha do mysql

CREATE DATABASE NomeDaBaseDoMysql;

 

Resolvido 🙂

MySQL server has gone away

Standard

Seu mysql anda estranho quando você está tentando fazer upload de um arquivo enorme via console (na verdade o restore, ou seja, mysql -u usuario -p nomedobdprarestaurar < arquivo.sql)???

Bem, se a mensagem de erro for esta -> MySQL server has gone away NÃO precisa entrar em pânico, só existem 2 coisas que são feitas e sanam tranquilamente o erro:

1 – entre no /etc/my.cnf (ou arquivo de configuração do mysql) e informe set-variable = max_connections=1500

Isto vai liberar para 1500 conexões concorrentes no mysql.

2 – Se o erro persistir, no mesmo arquivo informe:

max_allowed_packet = 5000000000

Você estará liberando uploads/restore/dumps de 1gb de tamanho.

Depois disso, reinicie o mysql (normalmente service mysql restart) e corra para o abraço.

 

Ah, se quiser ver qual valor ficou setado (só para conferir depois do restart use):

mysql> SHOW VARIABLES LIKE ‘max_allowed_packet’;

'xterm-256color': unknown terminal type no mac os x Lion, Mac os x mountain ou mac os x snow leopard

Standard

Se este erro ocorre com você na tentativa de acesso ao terminal de um servidor Ubuntu, Debian, Mint ou qualquer outro Debian Based usando Mac os X e recebe o erro ‘xterm-256color’: unknown terminal type, entre no servidor de destino aonde o terminal conecta e use o seguinte comando:

apt-get install ncurses-term -y

Isso vai instalar o pacote que faltava.

Interessante que se o erro não for corrigido, por exemplo, um comando inportante como top ou screen não funcionam :(.

Em plataformas Red Hat não rola isto.

Como mudar/alterar o hostname do computador no CentOS | RedHat

Standard

Olá amigos tudo tranqüilo?

Seguindo a dica do mestre @little_oak, resolvi dar uma chance no que tange a Server com Linux e resolvi instalar o CentOS…. porque até agora meu coração só tinha lugar para o magnífico Ubuntu…. Fiz a install em modo texto (acho melhor e mais rápido), só que em momento algum durante da instalação fui perguntado sobre o hostname da máquina, então veio a dúvida…. como mudar/alterar o hostname aqui nessa mazela? Acostumado com o Ubuntu fui logo no /etc/hostname …. PAM…. cadê?

O CentOS não possui esse arquivo, logo pensei maldita mudança…. mas não desisti, lembrei-me que o professor da Software Livre na faculdade havia falado sobre algo desse tipo no RedHat….. logo pensei, se CentOS é o irmão gêmeo do RedHat logo deve funcionar no CentOS também…. vou passar pra você o macete….

No Terminal como root vá até o diretório /etc/sysconfig/

Dentro desse diretórioa existem vários arquivos, maseditar um arquivo chamado network, e é ele que vamos alterar para mudar/alterar nosso hostname…. eu utilizo o VI ou VIM por achar mais prátido e rápido mas fica a gosto de vocês

 

root@localhost sysconfig]# vim network

 

Verá um conteúdo mais ou menos assim

 NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=localhost.localdomain

 

Não precisa nem falar qual o campo a ser alterado não é? Deixe como achar melhor, no meu caso ficou assim:

 NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=appunix.localdomain

 

O único ponto negative dessa alteração de hostname é que torna-se necessário a reinicialização do CentOS para que essa alteração entre em vigor…. para testar, você pode digitar hostname no Terminal e verá o nome para o qual você alterou…..

Simples, sucinto e rápido… enfim consegui fazer algo objetivo sem muitas firulas…..

Abraço forte galera….

Obrigado pelo sucesso do BLOG, todas as honras dadas a vocês leitores e a DEUS.

Fiquem com Deus!!!!!!!

Gostou? Compartilhe, comente e espalhe. 🙂

Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.

Standard

Se você está usando DEBIAN-BASED (mind/debian/ubuntu) e toda vez que roda o comando ddclient ele apresenta erro SEUS PROBLEMAS “SE ACABARAM-SE”!

Para sanar, como root faça o seguinte:

rm -rf /var/cache/ddclient/ddclient.cache

Depois rode o comando ddclient, a saída vai ser algo semelhante a:
SUCCESS:  updating SEUHOST.ALGUMACOISAg: good: IP address set to IPDASUAINTERFACEWEB

 

Abraços galera

Como fazer QoS de banda (controle de banda) no Ubuntu Server, Debian, Fedora, Centos, RedHat e etc

Standard

Vamos perceber o seguinte.
Esse how to serve para TODAS as distribuições que rodam como um gateway de internet, sendo somente um caso de particularidade a questão de paths de configurações, como por exemplo, para instalar o CBQ no ubuntu basta usar apt-get install shaper -y.
Isto instalará ele e basta você localizar o path aonde o script shaper está (/etc/init.d/shaper) e seus respectivos confs (/etc/shaper).
No caso das outras distribuições (red hat based -> Centos, Fedora e Red Hat) podemos ver que seu path fica em /etc/sysconfig/cbq. No caso de red hat já existe um arquivo de exemplo que serve para mostrar como as coisas são configuradas no padrão, seu nome é cbq-0000.example e existe outro mas é um caso de utilização do próprio CBQ, o avpkt.
Neste caso iremos criar tudo na mão.
Antes de por a mão na massa temos de entender algumas regras PRIMÁRIAS do CBQ.
Abaixo seguem as mesmas:

O nome dos arquivos de download

cbq-0002-download.in

Todos os arquivos de download devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de download devem começar com cbq-

cbq-0002-download.in

A numeração sempre deve começar a partir do 0002;

cbq-0002-download.in

Todos os arquivos devem terminar com .in

cbq-0002-download.in

O conteúdo dos arquivos de download

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2 – IP do cliente a ser vigiado.
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Arquivos de upload
O nome dos arquivos de upload

cbq-0002-upload.out

Todos os arquivos de upload devem obedecer a algumas regras na hora de serem nomeados. A primeira delas é que todos os arquivos de upload devem começar com cbq-

cbq-0002-upload.out

A numeração sempre deve começar a partir do 0002;

cbq-0002-upload.out

Todos os arquivos devem terminar com .out

cbq-0002-upload.out

O conteúdo dos arquivos de upload

DEVICE=eth1,10Mbit,1Mbit
RATE=64Kbit
WEIGHT=6Kbit
PRIO=5
RULE=10.0.0.2,
BOUNDED=yes
ISOLATED=yes

DEVICE=eth1,10Mbit,1Mbit – Esta linha contém a interface que sai para os clientes da rede.
RATE=64Kbit – Quantidade de banda destinada ao cliente. Aqui coloca-se qualquer valor que se deseje separar para o IP do cliente.
WEIGHT=6Kbit – Taxa máxima de download que o cliente pode alcançar (com pequenas variações para mais ou para menos).
PRIO=5 – Prioridade com que o IP do cliente deve ser vigiado. O normal é deixar 5.
RULE=10.0.0.2, – IP do cliente a ser vigiado. Observe que no arquivo de upload, o IP termina com uma vírgula (,).
BOUNDED=yes – Se setado para yes o usuário estará limitado mesmo que o link esteja com folga.
ISOLATED=yes – Se setado para yes indica que o cliente não poderá emprestar banda pra ninguem.

Iniciando o CBQ

Depois de criadas todas as regras, é preciso compilá-las, com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq compile

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper compile

Basta, depois da compilação, iniciar o CBQ com o comando (isto em fedora, redhat e centos):

root@appunixlabs~# cbq start

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper start

Ou se desejar pará-lo (isto em fedora, redhat e centos):

root@appunixlabs~# cbq stop

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# /etc/init.d/shaper stop

CBQ na inicialização

Adicione o comando cbq start ao rc.local para que carregue sozinho no ato do boot
(isto em fedora, redhat e centos):

root@appunixlabs~# echo "cbq start" >> /etc/rc.local

No caso do Debian, Ubuntu, Mint e similares:

root@appunixlabs~# echo "/etc/init.d/shaper start" >> /etc/rc.local

Fontes:

http://www.ubuntu.com/ubuntu (ubuntu)
http://www.debian.org/ (debian)
http://centos.org/ (centos)
http://www.projetofedora.org/ (fedora)
http://sourceforge.net/projects/cbqinit/ (cbq)
http://migre.me/5gcMr (cbq sob fedora)

Como instalar YUM no Red Hat 4 ou Centos 4

Standard

Essa é uma questão muito comum entre os sysadmins que tentam instalar o yum no red hat 4 ou centos 4 e não têm tido sucesso.

Abaixo preparei um how to com um link próprio dos arquivos para que você não tente encontrar o pacote na web e acabe se decepcionando ao ver navios.

Para instalar o yum no centos ou redhat siga exatamente o que será descrito.

Esse how to mostra como instalar o yum no RedHat 4.x (centos 4.x) de maneira simples e amigável.

O que será preciso?

1 – Estar logado como root no terminal,
2 – Criar um diretório aonde as coisas estarão armazenadas,
3 – Ter uma internet acessível para poder baixar (claro!).

Logue-se como root, em seguida, na pasta root crie algo como:

mkdir tmp
cd tmp

Agora que estamos dentro de /root/tmp nós iremos baixar todos os arquivos necessários e iremos deixar que o próprio yum dê conta do recado. Use exatamente os comandos abaixo para pegar os arquivos:

wget http://www.libphp.net/repositorio/yum-2.4.2-0.4.el4.rf.noarch.rpm
wget http://www.libphp.net/repositorio/libsqlite-2.8.15-1.i386.rpm
wget http://www.libphp.net/repositorio/python-elementtree-1.2.6-7.el4.rf.i386.rpm
wget http://www.libphp.net/repositorio/python-sqlite-0.5.0-1.2.el4.rf.i386.rpm
wget http://www.libphp.net/repositorio/python-urlgrabber-2.9.7-1.2.el4.rf.noarch.rpm

Agora que já temos os arquivos (pacotes) vamos instalar os mesmos:

rpm -ivh libsqlite-2.8.15-1.i386.rpm
rpm -ivh python-elementtree-1.2.6-7.el4.rf.i386.rpm
rpm -ivh python-sqlite-0.5.0-1.2.el4.rf.i386.rpm
rpm -ivh python-urlgrabber-2.9.7-1.2.el4.rf.noarch.rpm
rpm -ivh yum-2.4.2-0.4.el4.rf.noarch.rpm

Vamos ajustar o repositório:

wget http://www.libphp.net/repositorio/rpmforge-release-0.3.6-1.el4.rf.i386.rpm

Após

rpm -ivh rpmforge-release-0.3.6-1.el4.rf.i386.rpm

Depois disto somente faça:

yum update

Pronto!

Ajustando o Timezone do Ubuntu Como mudar o timezone do ubuntu

Standard

Se você está com o timezone ferrado em seu Ubuntu não deixe de acessar o console e corrigir isto assim:

root@appunix:~# tzselect

Escolha Sim, Brasil, Sua área (a minha tinha de ser São Paulo), logo após, use o comando:

root@appunix:~#ntpdate ntp.ubuntu.com

e cheque a data com:

root@appunix:~#date

Isto deverá imprimir algo como:

Sex Fev 04 00:22:47 BRT 2011

Como forçar a leitura de arquivos .htaccess no Ubuntu pelo Apache 2

Standard

Calma gente, nada de pânico, nada de gritos e nem stress, os caras que fazem isto por você estão aqui!

Realidade

Ter o apache instalado no ubuntu por meio de apt-get ou aptitude, ter um arquivo htaccess dentro do diretório público e o mesmo não estar sendo lido.

 

Saída

Como sempre, lá vai a coisa “mastigadinha”:

1 – Acesse o diretório das configurações do apache referente aos virtual hosts, ou seja -> /etc/apache2/sites-available/

2 – Assim que chegar lá, acesse o arquivo referente ao seu site, no caso do meu foi o amigo Default, ele tinha um conteúdo semelhante a:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

############################

Para corrigir a coisa altere somente os trechos como abaixo:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks Indexes
AllowOverride AuthConfig
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>

Como deixar o vim colorido no ubuntu

Standard

Hoje estive procurando como deixar o vim colorido, o qual, acho o melhor editor para quem quer aprender a programar… aí vai a dica:

abra o arquivo /etc/vim/vimrc

(escolha o editor de sua preferência), gosto do vim :P.

Basta somente remover o comentário da linha referente a:

syntax on

Comigo, removi aspas duplas, mas pode ter tralha (#), remova e coloque ele para moer 😛

OBS: Pode ocorrer o erro abaixo

Error detected while processing /usr/share/vim/vimrc:
line 20:
E319: Sorry, the command is not available in this version: syntax on
Press ENTER or type command to continue

Este erro será corrigido instalando a versão “recheada” do vim, fazendo:

sudo apt-get install vim

Como instalar SSL no Apache2 sob Ubuntu Server

Standard

usando o módulo SSL, criando chaves pública e privada e configurando o apache para usá-las.

Esse tutorial está assumindo que você instalou o Ubuntu versão Server, escolhendo a opção ‘Instalar Servidor LAMP”, apesar que pode ser útil em qualquer caso.
Se você não sabe instalar o LAMP2 sob Ubuntu Server acesse este link: http://www.appunix.com.br/howto/linux/lamp2-ubuntu-server-apache-2-mysql-5-php-5-phpmyadmin/

Instalando pacotes adicionais

Você já tem Servidor Linux+Apache+MySQL+PHP com pouco esforço com o Ubuntu e ele resolve a maior parte das demandas. Vamos adicionar ao pacote a possibilidade que seja possível navegar pelo seu site com uma conexão segura, o ‘https’. Para tanto, instale os pacotes adicionais para criar as chaves criptografadas.

sudo aptitude install openssl ssl-cert

Criando chaves pública e privada

Vamos criar uma pasta para guardar as chaves e usar um script para, respondendo algumas perguntas, criar chaves pública e privada que serão usadas pelo Apache2.

sudo mkdir /etc/apache2/ssl
sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Configurando o módulo SSL do Apache2

Vamos agora configurar o Apache2 para que além de usar a porta 80 ele use a porta 443, que é a porta padrão do https.

sudo su  -c 'echo Listen 443 >> /etc/apache2/ports.conf'

Depois disso, iremos habilitar o módulo ssl do Apache2.

sudo a2enmod ssl

Configurando o site com https

Você pode ter vários sites hospedados pelo mesmo Apache, nós iremos criar um segundo site no seu servidor, que na verdade é o site padrão usando https

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
sudo nano /etc/apache2/sites-available/ssl

Modifique o arquivo para usar a porta 443 e habilite a função SSL usando o certificado que criamos:

NameVirtualHost *:443
<VirtualHost *:443 >
        ServerAdmin webmaster@localhost

        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/apache.pem

        DocumentRoot /var/www/

Depois de editar o arquivo, habilite o site

sudo a2ensite ssl

E force o Apache2 a recarregar as configurações

sudo /etc/init.d/apache2 force-reload

Testando

Se não houve nenhuma mensagem de erro quando você forçou a reconfiguração do Apache2 é quase certo que quando você acessar “https://’ip-do-seu-servidor‘” verá seu site, mas a comunicação entre seu navegador e o servidor é criptografada.

Se por um “acaso”, você receber a mensagem de que a porta SSL não pode ser ativada (0.0.0.0:443), você pode acessar o arquivo

/etc/apache2/ports.conf'

e eliminar a linha (deve ser a última) que indica acesso pela porta 443 (caso a default 80 esteja informada).

————————————————-

 

Fonte:

http://wiki.ubuntubrasil.org/GleidsonLacerda

Lamp2: Ubuntu Server APACHE 2 Mysql 5 PHP 5 phpmyadmin

Standard

Um ambiente LAMP2 (apache 2 mysql 5 php 5 e phpmyadmin) é fundamental para quem desenvolve e deseja testar sua app antes de envia-la para web, sem mais, vamos aos passos:

1 – Clique em Aplicativos->Acessórios->Terminal OU CASO ESTEJA USANDO QUALQUER OUTRA VERSÃO SERVER SEM X, CTRL + ALT + F2.
2 – rode o comando:

sudo apt-get install apache2

Este comando serve para instalar o apache 2. Ressalto que usei o gestor de pacotes e habilitei o suporte a pacotes instáveis e também o repositório partner (mais abaixo posto como fazer).

Ainda no console use o comando abaixo:

sudo apt-get install php5 libapache2-mod-php5
Isto servirá para instalar o php5 e ainda integra-lo como DSO no apache (como módulo).

Já que estamos na metade do caminho o ideal seria dar um restart no apache para garantir que ele leu seu conf.
Use o comando:

sudo /etc/init.d/apache2 restart

A saída deverá ser parecida com:

* Restarting web server apache2 apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
[ OK ]

Para garantir que o apache está interpretando códigos php (fazendo uso do interpretador como módulo) podemos editar um arquivo e testa-lo. use o comando abaixo:

sudo vi /var/www/index.php

Dentro deste arquivo informe:

echo 'APPUNIX é um lab de nerds!';
?>

escreva : e depois escreva wq! e pressione enter, ficando algo como :wq! , você salvará o arquivo e sairá do vi.
Feito isto acesse o arquivo para ver se a mensagem APPUNIX é um lab de nerds! aparece, caso sim, sucesso total! Do contrário releia este manual!
Este teste pode ser feito em http://localhost/index.php

Para instalar o mysql como servidor de banco de dados devemos usar o seguinte comando:
sudo apt-get install mysql-server


No meio desse esquema todo serão exibidas janelas que solicitarão a senha de administrador do mysql, semelhantes as imagens abaixo:

senha mysql root

senha mysql root

Outra tela:

senha root mysql 2

senha root mysql 2

Estas telas pedem para que você dê uma senha para o usuário root do mysql, escolha uma senha ao seu gosto e depois repita a mesma.

Agora iremos integrar o php + apache + mysql + phpmyadmin, para isto precisaremos usar o comando:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Neste meio tempo uma tela para escolher entre apache e lighttpd aparecerá, escolha apache. Veja:

escolha apache

escolha apache

Na primeira tela escolha OK e dê um tab para confirmar que aceita a opção.

phpmyadm

phpmyadm

A próxima tela pedirá uma senha de admin para o phpmyadmin, para isto defina algo seu. Veja a tela:

pass phpmyadm

pass phpmyadm

Costumo, após terminar uma instalação de integração como esta utilizar-me de lago, insira as seguintes linhas naquela página index.php usando sudo vim /var/www/index.php
Informe dentro dela o seguinte:

mysql_connect(‘localhost’, ‘root’, ‘suaSENHA’) or die(mysql_error());
?>

Acesse http://localhost/index.php

Se nada ocorrer tudo está 100%.

Quando terminar use o comando:
sudo /etc/init.d/apache2 restart

Isto vai fazer o apache reler todos os confs.

Para concluir precisamos levar o phpmyadmin para a pasta web afim de que possamos editar nossos bds. Para isto precisamos copiar o phpmyadmin para dentro do /var/www usando o comando:

cp -rp /usr/share/phpmyadmin /var/www

Sendo assim, para acessar somente precisamos de um http://localhost/phpmyadmin

Mudando encoding do Postgres para poder usar banco de dados latin1 ou outro e mudar o encoding do Ubuntu ou Debian

Standard

Algo simples que desejamos e a trabalheira grandiosa :(. O que queremos? Mudar o encoding default para Latin1 (se bem que o mundo hoje gira em torno de utf8), assim como mudar locales para PT_BR.

1 – Encoding do Sistema Operacional Debian/Ubuntu Ferrados (sim, você brasileiro e a droga do locale te mostrando coisas de americanos, pode uma coisa destas?)

2 – Mudar o Encoding do Postgres.

Vamos ao ataque

Antemão você precisa saber que o seu sistema foi configurado por algum bestão, isto mesmo, o cara instalou o sistema americano sendo brasileiro.

Ter um porstgres que não aceita nem a pau um encoding diferente (padrão dessa tosquisse sempre é UTF8).

Locale do Sistema

Mãos-a-Obra

Todas as configurações e comandos foram executados como usuário root.

Existem vários arquivos que fazem a configuração do locale, precisamos configurar todos eles e depois executar alguns comandos, vamos lá.

Edite o arquivo /etc/environment e altere os campos LANG e LANGUAGE de forma que fiquem iguais ao abaixo, se não existir, acrescente:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

O arquivo /etc/default/locale também deve ser editado e seu conteúdo deve ser:

LANG="pt_BR"
LANGUAGE="pt_BR:pt:en"

Execute o seguinte comando:

# echo "pt_BR pt_BR.ISO-8859-1" >> /etc/locale.alias

Este arquivo grava os aliases para os locales, isso é para facilitar as configurações.

No diretório /var/lib/locales/supported.d alguns arquivos que configuram os locales que serão gerados, por padrão existem três arquivos “en”, “pt” e “local”. Para nosso caso, pode apagar o “en” e o “pt” deixando apenas o “local”.

Feito isso, edite o arquivo local e deixe seu conteúdo como abaixo:

pt_BR.ISO-8859-1 ISO-8859-1
en_US.ISO-8859-1 ISO-8859-1

Muito bem, configuramos os arquivos necessários para a geração dos locales, agora vamos reconfigurar.

Os comandos abaixo fazem o serviço:

# localedef pt_BR -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO-8859-1 -i pt_BR -f ISO-8859-1
# localedef pt_BR.ISO8859-1 -i pt_BR -f ISO-8859-1
# dpkg-reconfigure locales
# locale-gen --purge
# locale-gen

###### SE HOUVER ERRO USE:
localedef pt_BR -i pt_BR -f UTF-8
localedef pt_BR -i pt_BR -f LATIN1

Acredito que apenas um desses três comandos fariam o serviço, mas como eu executei os três quando estava configurando o sistema não vou tirar algum deles, é melhor executar a mais e funcionar do que executar a menos e não funcionar.

Reinicie o sistema e execute o comando abaixo para termos certeza que está tudo conforme o desejado.

# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE="pt_BR"
LC_NUMERIC="pt_BR"
LC_TIME="pt_BR"
LC_COLLATE="pt_BR"
LC_MONETARY="pt_BR"
LC_MESSAGES="pt_BR"
LC_PAPER="pt_BR"
LC_NAME="pt_BR"
LC_ADDRESS="pt_BR"
LC_TELEPHONE="pt_BR"
LC_MEASUREMENT="pt_BR"
LC_IDENTIFICATION="pt_BR"
LC_ALL=

# locale -a
C
en_US.iso88591
POSIX
pt_BR.iso88591

Agora sim, está tudo como deveria estar. Nosso sistema já está usando ISO-8859-1.

(ISO-8859-1é LATIN1)

Corrigindo o Encoding do Postgres

Bem, esta é a hora do quebra-quebra, vamos lá:

1 – Crie uma nova instância (cluster) de gestão do Postgres:

sudo pg_createcluster -e LATIN1 -d /caminho/do/novoSGDB 8.3
cluster-8.3-2

Feito isto, a porta que o postgres vai operar neste novo SGDB será 5433

Criando SuperUser para administrar o Postgres

[root@appunixlabs:~] # su – postgres

[postgres@appunixlabs:~] $ createuser -P

Digite o nome da role a ser adicionada: pglinux
Digite a senha para a nova role:
Digite-a novamente:
A nova role poderá criar um super-usuário? (s/n) s
CREATE ROLE

Quer ver os users?

[postgres@appunixlabs:~] $ psql
postgres=# du
Lista de roles
Nome da role | Super-usuário | Cria role | Cria BD | Conexões  | Membro de
————–+—————+———–+———+———–+———–
pglinux       | sim                    | sim            | sim         | ilimitado    |
postgres         | sim                    | sim            | sim         | ilimitado    |
(2 registros)

postgres=# q

 

Obs: Se estiver usando Debian 4 mude o path para aceitar corretamente todas as mudanças

PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games”

 

 

Caso seus locales estejam 100% ajustados antes mesmo deste How To você pode usar outros meios, uma vez criado um banco com uma encoding (LATIN1, SQL_ASCII, UTF8), só é possível mudá-lo fazendo um backup e recriando o banco. Embora a documentação do PostgreSQL informe sobre a opção -E no pg_dump, falta um “pulo do gato”, que é o que vai ser apresentado neste passo a passo.

1. Se for migração de servidor, altere o arquivo pg_hba.conf (geralmente em /etc/postgresql/8.x/main/pg_hba.conf) do servidor antigo para incluir a linha:

hostnossl all postgres ipnovoservidor/32 trust

2. Reinicie o PostgreSQL no servidor antigo:

# service postgresql-8.3 restart

3. Faça um “su” para o usuário postgres no servidor novo:

# su postgres

4. Gere o backup no servidor novo (se for o mesmo servidor, a opção h é desnecessária) . UTF8 é um exemplo de encoding, mas de qualquer forma é recomendado como padrão):

$ pg_dump -h hostanti -C -E UTF8 -U postgres bancodedados > bancodedados.sql

5. O pulo do gato: a opção -E do pg_dump gera o ARQUIVO no encoding desejado. Mas a opção -C (que copia a estrutura original), copia fielmente, a ponto de gerar a linha:

CREATE DATABASE foh WITH TEMPLATE = template0 ENCODING = ‘LATIN1’;

com o encoding original, o que gera erro na importação.

O MACETE É TROCAR O ENCODING PARA O CORRETO:

CREATE DATABASE foh WITH TEMPLATE = template0 ENCODING = ‘UTF8’;

Obs.: Se o arquivo for grande, o “mcedit” (que uso muito), não dá conta de abrir, mas o “joe” não reclama.

6. Agora é só rodar:

$ psql -f bancodedados.sql

Lighttpd php5 mysql no Ubuntu 11.04

Standard

Lighttpd é verdadeiramente uma bala no que tange a containers web. Muitas pessoas gostam dele (segundo a mídia até o Youtube já amou esse negócio), por isso estaremos indo direto ao assunto, vamos instalar essa bala no Ubuntu 11.04?

Temos que ter poder de root para fazer o negócio rodar (use sudo su ou su -, sendo su – melhor pois dá autoridade global):

apt-get update &&

apt-get install mysql-server mysql-client -y

Fazendo isto estaremos instalando o mysql server e seu client (inclusive no pacote vem a ferramenta replace, muito boa para substituir termos em um arquivo [depois falamos de utilitários em outro artigo]).

No momento seguinte o sistema vai pedir que você defina a senha de root:

New password for the MySQL … : Informe a senha de root
Repeat password for the MySQL …: Confirme novamente a senha

Vamos instalar o Lighttpd agora!

apt-get install lighttpd -y

Presumindo que você possui um ip setado a este pc (qualquer ip, se for por dhcp use ifconfig e veja o ip da sua eth0 ou ethX [sendo X ponto variável, podendo ser 1 para interface real secundária e assim por diante]) 10.0.0.1, abra o navegador e digite 10.0.0.1, deverá ser exibido um arquivo pedindo substituição de conteúdo, aonde o document root (pasta principal da web) fica em /var/www e o arquivo de configuração /etc/lighttpd/lighttpd.conf. As configurações extras ficam em /etc/lighttpd/conf-available . Se futuramente ativamos módulos extras podemos usar lighttpd-enable-mod para ativa-los. Os links simbólicos de comandos ficam em /etc/lighttpd/conf-enabled, mas o filé mesmo para edições e customizações é /etc/lighttpd/conf-available.

Hora de meter o php5 em modo fastcgi!

Vamos lá:

apt-get install php5-cgi

 

Para que tudo fique validado precisamos arrumar o esquema. Vamos editar o conf:

vim /etc/php5/cgi/php.ini

Devemos procurar pela linha:

cgi.fix_pathinfo

e mudar seu conteúdo para:

cgi.fix_pathinfo=1

Agora vamos ativar o módulo do php (claro que instalamos o mesmo para ser instância separada,  mas é um módulo):

lighttpd-enable-mod fastcgi

lighttpd-enable-mod fastcgi-php

Vamos conferir os links simbólicos paragarantir que tudo está ok entre os arquivos /etc/lighttpd/conf-enabled/10-fastcgi.conf , /etc/lighttpd/conf-available/10-fastcgi.conf,/etc/lighttpd/conf-enabled/15-fastcgi-php.conf e /etc/lighttpd/conf-available/15-fastcgi-php.conf :

ls -l /etc/lighttpd/conf-enabled

root@developer:~# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 77 2011-05-25 7:46 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 78 2011-05-25 7:46 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
root@developer:~#

Vamos dar aquele reload sarado:

/etc/init.d/lighttpd force-reload

Vamos testar nosso sistema de containers?

vim /var/www/testes.php

Dentro dele colocarmos assim:

<?php

phpinfo();

?>

A abriremos o browser para ver se aparece a info do php com esse endereço: http://10.0.0.1/testes.php

Vamos dar suporte ao php para que o bichão possa usar o mysql sem stress?

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Para validar todo o bando de mudanças façamos assim:

/etc/init.d/lighttpd restart

E para reconferir http://10.0.0.1/testes.php em seu navegador.

Thanks Guys!

😉

 

Nossas fontes:

 

Ubuntu alert USN-1158-1 (curl) CURL vulnerabilidade

Standard

Ubuntu alert USN-1158-1 (curl)

From: Steve Beattie <sbeattie@ubuntu.com>
To: ubuntu-security-announce@lists.ubuntu.com
Subject: [USN-1158-1] curl vulnerabilities
Date: Thu, 23 Jun 2011 20:31:50 -0700
Message-ID: <20110624033150.GB3479@nxnw.org>
Archive-link: Article, Thread
========================================================================== Ubuntu Security Notice USN-1158-1 June 24, 2011 curl vulnerabilities ========================================================================== A security issue affects these releases of Ubuntu and its derivatives: - Ubuntu 11.04 - Ubuntu 10.10 - Ubuntu 10.04 LTS - Ubuntu 8.04 LTS Summary: Multiple vulnerabilities in curl. Software Description: - curl: HTTP, HTTPS, and FTP client and client libraries Details: Richard Silverman discovered that when doing GSSAPI authentication, libcurl unconditionally performs credential delegation, handing the server a copy of the client's security credential. (CVE-2011-2192) Wesley Miaw discovered that when zlib is enabled, libcurl does not properly restrict the amount of callback data sent to an application that requests automatic decompression. This might allow an attacker to cause a denial of service via an application crash or possibly execute arbitrary code with the privilege of the application. This issue only affected Ubuntu 8.04 LTS and Ubuntu 10.04 LTS. (CVE-2010-0734) USN 818-1 fixed an issue with curl's handling of SSL certificates with zero bytes in the Common Name. Due to a packaging error, the fix for this issue was not being applied during the build. This issue only affected Ubuntu 8.04 LTS. We apologize for the error. (CVE-2009-2417) Original advisory details: Scott Cantor discovered that curl did not correctly handle SSL certificates with zero bytes in the Common Name. A remote attacker could exploit this to perform a man in the middle attack to view sensitive information or alter encrypted communications. Update instructions: The problem can be corrected by updating your system to the following package versions: Ubuntu 11.04: libcurl3 7.21.3-1ubuntu1.2 libcurl3-gnutls 7.21.3-1ubuntu1.2 libcurl3-nss 7.21.3-1ubuntu1.2 Ubuntu 10.10: libcurl3 7.21.0-1ubuntu1.1 libcurl3-gnutls 7.21.0-1ubuntu1.1 Ubuntu 10.04 LTS: libcurl3 7.19.7-1ubuntu1.1 libcurl3-gnutls 7.19.7-1ubuntu1.1 Ubuntu 8.04 LTS: libcurl3 7.18.0-1ubuntu2.3 libcurl3-gnutls 7.18.0-1ubuntu2.3 After a standard system update you need to restart any applications that make use of libcurl to make all the necessary changes. References: CVE-2009-2417, CVE-2010-0734, CVE-2011-2192 Package Information: https://launchpad.net/ubuntu/+source/curl/7.21.3-1ubuntu1.2 https://launchpad.net/ubuntu/+source/curl/7.21.0-1ubuntu1.1 https://launchpad.net/ubuntu/+source/curl/7.19.7-1ubuntu1.1 https://launchpad.net/ubuntu/+source/curl/7.18.0-1ubuntu2.3 -- ubuntu-security-announce mailing list ubuntu-security-announce@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-security...   Fonte: http://lwn.net/Articles/449147/

Canonical Encerra suporte ao Ubuntu 6.06 LTS ("Dapper Drake")

Standard

A Canonical em termos de suporte a pacotes dos seus respectivos sistemas operacionais dá show e espanta, principalmente quando se trata de versionamento baseado em LTS. Você pode estar se perguntando:

O que é LTS em uma versão do Ubuntu?

LTS significa Longo Termo de Suporte, ou seja, versões com acesso a repositórios oficiais por muito tempo.

Particularmente sou suspeito a dizer que esta versão é muito potente, principalmente por que por estes dias estive com um servidor o qual eu e doooguinha prestamos consultoria linux aqui em BH.

Se você deseja pular fora deste “The End” a tempo use o seguinte comando:

do-release-upgrade -d

Foram 5 anos de serviços prestados com muito louvor por parte da Canonical e merecem toda sorte de elogios.
Parabéns pela iniciativa da Canonical e esperamos grandes releases LTS.

 

Ubuntu Oneiric Ocelot Lançado! 11.10

Standard

A Canonical sempre disponbiliza alguma versão prévia (bem “verde”) para que a comunidade possa reportar bugs e acompanhar as evoluções até que esteja (a Distribuição Ubuntu) bem estável. O Ubuntu usa toda a engine do Debian Instable e já detém uma grande fatia do mercado Gnu/Linux no mundo inteiro. O Kernel disponível neste recente release é o 2.6.39. Sabemos que a interface Unity não tem sido aceita por unanimidade pela comunidade usuária do Ubuntu Linux, mas já tem alcançado grande amadurecimento e torcemos para que o Unity se torne uma paixão em termos de ambiente X. Temos tutoriais que explanam com clareza avaliações do Ubuntu com Unity. Perceba que o problema com brilho no Ubuntu pode persistir, para isto acesse o link abaixo:

http://www.appunix.com.br/howto/linux/resolvendo-problema-de-brilho-ubuntu-10-04-10-10-11-04-e-linux-mint-9-e-10-julia/
As notas de lançamento são:

Oneiric Ocelot Alpha 1 Released

Kate Stewart kate.stewart at ubuntu.com
Thu Jun 2 19:44:01 UTC 2011


"Ocelot, ocelot, where are you now?
 Won't you come out to play?" - phish

Our Oneiric Ocelot (Ubuntu 11.10 Alpha 1) is poking its young head out
of the den, and looking for some developers and testers to play with.

Pre-releases of Oneiric Ocelot are *not* encouraged for anyone needing a
stable system or anyone who is not comfortable running into occasional,
even frequent breakage.  They are, however, recommended for Ubuntu
developers and those who want to help in testing, reporting, and fixing
bugs.

Alpha 1 is the first in a series of milestone CD images that will be
released throughout the Oneiric development cycle.  The Alpha images
are known to be reasonably free of showstopper CD build or installer
bugs, while representing a very recent snapshot of Oneiric.  You can
download them here:

   http://cdimage.ubuntu.com/releases/oneiric/alpha-1/
   (Ubuntu Desktop, Server, ARM)

Additional images are also available at:

   http://uec-images.ubuntu.com/releases/oneiric/alpha-1/ (Ubuntu
   Server Cloud and EC2)
   http://cdimage.ubuntu.com/kubuntu/releases/oneiric/alpha-1/
   (Kubuntu)
   http://cdimage.ubuntu.com/xubuntu/releases/oneiric/alpha-1/
   (Xubuntu)
   http://cdimage.ubuntu.com/edubuntu/releases/oneiric/alpha-1/
   (Edubuntu)

Alpha 1 includes a number of software updates that are ready for wider
testing.  This is quite an early set of images, so you should expect
some bugs.  For a more detailed description of the changes in the Alpha
1 release and the known bugs (which can save you the effort of reporting
a duplicate bug, or help you find proven workarounds), please see:

  http://www.ubuntu.com/testing/

If you're interested in following the changes as we further develop
Oneiric, we suggest that you subscribe initially to the
ubuntu-devel-announce list. This is a low-traffic list (a few posts a
week) carrying announcements of approved specifications, policy changes,
alpha releases, and other interesting events.

  http://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-announce

Enjoy,

--
Kate Stewart, on behalf of the Ubuntu release team

Quer baixar?
Download (SHA256): oneiric-desktop-i386.iso (714MB, torrent), oneiric-desktop-amd64.iso (715MB, torrent). Alpha 1 images are also available for Kubuntu (download), Xubuntu (download) and Edubuntu (download).

DHCP Server Ubuntu Linux Ubuntu

Standard

Olá galera tudo na paz?
Hoje vou mostrar de forma simples como configurar um Servidor de DHCP no Ubuntu (diga-se Debian-like)….
DHCP é a siga Dynamic Host Configuration Protocol que é na verdade é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede.
A comunicação do cliente com o Servidor DHCP funciona da seguinte forma, o Cliente envia um pacote em UDP em Broadcast (quer dizer que é destinado a todas a máquinas da rede) com um pedido DHCP (Configurações gerais como IP e DNS), o servidor DHCP que
primeiro capturar este pacote enviará de volta um pacote contendo as configurações, onde constará pelo menos um endereço de IP, uma máscara de rede como parâmetros opcionais Gateway, Servidor Wins, DNSs, dentre outras consigurações.
O DHCP usa um modelo cliente-servidor, no qual o servidor DHCP mantém o gerenciamento centralizado dos endereços IP usados na rede.

DHCP em Linux é mais rápido que DHCP em WIndow$?
Sim, isso não é mito… A vantagem do Linux sobre o Window$ nesta questão é que o Linux suporta o protocolo TCP/IP nativamente(via módulos de Kernel), enquanto o Window$ utiliza uma camada de compatibilidade (WInsock,que traz perda de desempenho por não estar diretamente no Kernel) para oferecer suporte a TCP/IP.
Existe também o Mito de que o DHCP Linux é mais difícil de ser configurado, Mentira…. Verão por meio desse how to que é simplista, tanto a configuração quanto manutenção desse DHCP em Linux.
Deixemos de balela e mãos a obra.

Primeiro, colocar um IP Fixo

root@appunix:~#ifconfig eth0 192.168.2.2 netmask 255.255.255.0 up

ou use esse how to e aprenda um pouco sobre configuração de interfaces de rede.

Agora é hora de instalar o pacote dhcp3-server

root@appunix:~#apt-get update

root@appunix:~#apt-get install dhcp3-server

Após o pacote intalado, pode fazer backup do arquivos de configuração do nosso DHCP(caso aconteça algum erro poderemos voltar com ele)

root@appunix:~#mv /etc/dhcp3/dhcpd.conf /etc/dhcp/dhcpd.conf.BKP

Agora vamos criar novamente o conf

root@appunix:~#vim /etc/dhcp3/dhcpd.conf

deixe o da seguinte forma (adaptando às suas necessidades)

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.13 192.168.2.20;
option subnet-mask 255.255.255.0;
option routers 192.168.2.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option broadcast-address 192.168.2.255;
}

Onde:
default-lease-time 600→ controla o tempo de renovação dos endereços IP em nosso caso a cada 10 minutos o servidor verifica se a estação ainda está ativa
max-lease-time 7200→ determina o tempo máximo que uma estação pode usar um determinado endereço IP, isso foi planejado em ambientes onde haja escassez de endereços IP no nosso caso cada IP fica “alugado” por no máximo 2 Horas(isso só é legal quando você tem menos IPs disponíveis do que estações e, quando todas as estações não ficam ligadas ao mesmo tempo)
authoritative→ significa que esse é o principal DHCP de sua rede
subnet 192.168.2.0 netmask 255.255.255.0→ significa faixa de faixa de IP e máscara de rede utilizada em sua rede
range 192.168.2.13 192.168.2.20→ aqui especificamos qual a largura de distribuição de IPs para no DHCP, em nosso caso o DHCP irá distribuir IPs de 192.168.2.13 até 192.168.2.20 Inclusive
option subnet-mask 255.255.255.0→ a máscra de rede para os Clintes
option routers 192.168.2.1→ aqui você define o Gateway das estações Cliente
option domain-name-servers 8.8.8.8, 8.8.4.4→ aqui são especificados os Servidores DNS usados pelo seus clientes, costumo usar os da Google (nunca tive qualquer que seja o problema em questão de nomes com esses DNSs)mas, caso tenha um servidor DNS em sua Rede(pode ser o proprio computador) pode colocar aqui o/os IPs deles
option broadcast-address 192.168.2.255→ endereço de Broadcast da Rede

Muito tranquilo…. agora caso trabalhe em uma rede onde usa-se impressoras compartilhadas em alguns hosts, é imprecindível que atribua por meio do DHCP IPs amarrados ao Mac Address (endereço físico e Único para cada placa de rede) ou seja, IPs fixos através do Servidor de DHCP.
Como fazer?
Após a Ultima linha de configuração acrescente

host doooguinha {
hardware ethernet 00:24:8c:4d:e3:7c;
fixed-address 192.168.2.15;}

onde:
host doooguinha→ é o nome o qual você queria dar a essa atribuição de IP
hardware ethernet 00:24:8c:4d:e3:7c→ é o endereço Físico (Mac Address) da minha placa de rede
fixed-address 192.168.2.15→ é o IP fixo que você quer atribuir para essa estação

* Só pra lembrar que o endereço fixo deve estar dentro da faixa de IP estabelecido na parte de range que foi explicado acima

Dica: Use servidor DHCP em uma faixa de Ips diferente daquela que você deixará para DHCP, por exemplo, da faixa de 192.168.2.1 até 192.168.2.20 (Setados na mão, em cada estação) e o restante 192.168.2.21 até 192.168.2.254 para o DHCP, Caso não o faça seu servidor DHCP poderá atribuir um endereço já utilizado por uma estação a outra
por meio do DHCP.

Após feita a configuração agora basta reiniciar o serviço e correr para o abraço

root@appunix:~#/etc/init.d/dhcp3-server restart

ou

root@appunix:~#/etc/init.d/dhcp3-server stop

root@appunix:~#/etc/init.d/dhcp3-server start

Nos clientes há várias formas de receber um Ip por DHCP
Vou mostrar todas pelo terminal

root@appunix:~#dhclient eth0

eth0 substitui-se pela interface usada por seu PC

ou

root@appunix:~#ifconfig eth0 0

onde eth0 é a interface utilizada por seu PC

Clientes WIndow$/ Mac receberam Ip normalmente de forma imperceptível.

Uma observação importante, é que ao configurar um servidor com duas placas de rede, você deve configurar o servidor DHCP para escutar apenas na placa da rede local. Em nossos testes utilizamos Ubuntu e, esta configuração está no arquivo “/etc/default/dhcp3-server”.

root@appunix:~vim /etc/default/dhcp3-server

Procure pela linha:

INTERFACES=”” e deixe de acordo com sua estrutura em nosso caso ficou INTERFACES=”eth0″ só irá escutar requisições de DHCP pela interface eth0.
É isso galera… espero ter ajudado, qualquer dúvida poste um comentário e o mais rápido possível será respondido.:D
Abraço a todos.

Bloquear/Liberar Internet hora/dias específicos Squid

Standard

Olá galera tudo na paz?

Esses dias surgiu a necessidade de fazer algo no Squid que ainda não havia usado/precisado… foi necessário bloquear internet de uma certo funciorário em um certo horário (a história se resume no seguinte, no horário de almoço da Telefonista uma Menina/Moça/Mulher que a substiuia acessava mais de 1000 S/s (mil sites por segundo). Um certo dia foi implementado Sarg para que os donos soubessem o que cada funcionário estava acessando através da internet… Após alguns dias do Sarg rolando, um dos donos chega ao relatório dessa tal Telefonista. A casa caiu…

– Doooguinha, porque a Telefonista está acessando tanta coisa? Bloqueia o que não for de trabalho.

Vou eu olhar, a pobre da Telefonista nada acessava… somente kboing para ouvir músicas o dia inteiro (Telefonistas do Brasil vocês merecem ao menos um pouco de música, o trabalho de vocês é muito estressante…),então resolvi através do IPTRAF(ferramnte de monitoramento de tráfego de rede) analizar o tréfego durante o horário de almoço…. Foi naquele momento que vi de verdade o que é um gargalo de rede (a maldita substituta). Sites de compra coletiva eu nunca vi tantos e com tantos nomes diferentes…. me parece que ela tinha todos gravados de cabeça. Mas vamos lá a uma solução simples e rápida através do Squid.

Primeiro na parte de ACLs do Squid crie 4 ACLs no squid.conf (/etc/squid/squid.conf) semelhantes as minhas (pode alterar o nome para facilitar em sua administração).

acl Telefonista src 192.168.2.110/32
acl time1_Telefonista time MTWHFA 08:00-12:30
acl time2_Telefonista time MTWHFA 12:31-13:59
acl time3_Telefonista time MTWHFA 14:00-18:00

Explicando a primeira ACL, acl <nome_da_acl> scr <ip_cliente>/32 (isso significa que é uma máscara de rede de classe C, caso sua rede seja de classe diferente adeque essa linha)

As outras 3 ACLs são as faixas de tempo no qual vamos liberar/bloquear acesso a mercer de nossa necessidade.Agora no devido local em seu Squid vamos Liberar/Bloquear (Allow/Deny) a partir de nossas necessidades, em nosso caso ficou assim:

http_access allow Telefonista time1_Telefonista
http_access deny Telefonista time2_Telefonista
http_access allow Telefonista time3_Telefonista

Na primeira regra estamos liberando acesso a internet para a Telefonista de 08:00 às 12:30. Já no horário de 12:31 às 14:00 estará tudo bloqueado e, no horário de 14:01 às 18:00 volta a ser tudo liberado novamente.Lembrando que essa regra vale de segunda a sábado.

Após terminar a modificação das regras no squid.conf e salvá lo será necessário que reinicie seu serviço ou ao menos dê uma reload para que o mesmo releia o .conf com as devidas alterações e as coloque em vigor. Pode-se usar qualquer desses comando seguintes:

root@appunix:~#/etc/init.d/squid reload

root@appunix:~#/etc/init.d/squid restart

root@appunix:~#service squid reload

root@appunix:~#service squid restart

root@appunix:~#killall squid -HUP

Esse último é o que mais uso, pela agilidade… onde o sistema finalizará todos os processos com o nome de squid e rapidamente startará relendo o conf com as alterações feitas e, o melhor é uqe o usuário não percebe, bem semelhante ao /etc/init.d/squid reload e service squid reload. Espero ter ajudado.

Fiquem atentos, agora que estou um pouco mais familiarizado com o ambiente do Squid vou postar vários artigos sobre o assunto. Sintam se a vontade para fazer perguntas e sugerir assuntos para nossos futuros artigos.

Abraço a todos. 😀

smartmontools smartctl monitorando o smart de seus hds (by Mr. Morimoto)

Standard

Este artigo funciona em Ubuntu Server e Debian.
Autor: Carlos E. Morimoto -> http://www.hardware.com.br/artigos/monitorar-smart/

É possível monitorar os erros de leitura do HD (mesmo antes dos badblocks começarem a aparecer) usando o SMART, um recurso de monitoramento disponível em todos os HDs modernos, onde a própria controladora monitora o status do HD e disponibiliza um log numa área reservada, que pode ser lida pelo sistema operacional.

No Linux, este recurso é disponibilizado através do “smartmontools“, um pacote disponível nos repositórios da maioria das distribuições e também no http://smartmontools.sourceforge.net/.
Para instalar no UBUNTU ou Debian use:

apt-get install smartmontools mailutils -y
O smartmontools é baseado no “smartsuite”, um pacote mais antigo, que ainda é incluído em algumas distribuições (como no Debian), mas que oferece menos funções e não é mais desenvolvido ativamente.

A maior parte das funções podem ser acessadas usando o utilitário “smartctl“, incluído no pacote. Comece usando a opção “-i”, seguida do device do HD (como em: smartctl -i /dev/hda) para ver informações sobre o drive:

 

Note que neste caso, embora o SMART seja suportado pelo drive, ele está desativado. Antes de mais nada, precisamos ativá-lo, usando o comando:

# smartctl -s on /dev/hda

Para um diagnóstico rápido da saúde do drive (fornecido pela própria controladora), use o parâmetro “-t short“, que executa um teste rápido, de cerca de dois minutos e (depois de alguns minutos) o parâmetro “-l selftest” que exibe o relatório do teste:

# smartctl -t short /dev/hda

 

Sending command: “Execute SMART Short self-test routine immediately in off-line mode”.
Drive command “Execute SMART Short self-test routine immediately in off-line mode” successful. Testing has begun.
Please wait 2 minutes for test to complete.
# smartctl -l selftest /dev/hda

Este comando exibe um relatório de todos os auto-testes realizados e o status de cada um. Num HD saudável, todos reportarão “Completed without error“.

Você pode executar também um teste longo (que dura cerca de uma hora) usando o parâmetro “-t long“. Ambos os testes não interferem com a operação normal do HD, por isso podem ser executados com o sistema rodando. Em casos de erros, o campo “LBA_of_first_error” indica o número do primeiro setor do HD que apresentou erros de leitura, como em:

Nestes casos, execute novamente o teste e verifique se o erro continua aparecendo. Se ele desaparecer no teste seguinte, significa que o setor defeituoso foi remapeado pela controladora, um sintoma benigno. Caso o erro persista, significa que não se trata de um badblock isolado, mas sim o indício de um problema mais grave.

O parâmetro “-H” (health) exibe um diagnóstico rápido da saúde do drive, fornecido pela própria controladora:

# smartctl -H /dev/hda

SMART overall-health self-assessment test result: PASSED

Neste caso, o SMART informa que não foi detectado nenhum problema com o drive. Em casos de problemas iminentes, ele exibirá a mensagem “FAILING“. Este diagnóstico da controladora é baseado em várias informações, como erros de leitura, velocidade de rotação do disco e movimentação da cabeça de leitura.

Um disco “FAILING” não é um local seguro para guardar seus dados, mas em muitos casos ainda pode funcionar por alguns meses. Se ainda não houverem muitos sintomas aparentes, você pode aproveitá-los em micros sem muita importância, como estações que são usados apenas para acessar a Web, que não armazenam dados importantes. Note que, embora relativamente raro, em muitos casos o drive pode realmente se perder menos de 24 horas depois de indicado o erro, por isso transfira todos os dados importante imediatamente.

Você pode ver mais detalhes sobre o status de erro do HD usando o parâmetro “-A“, que mostra todos os atributos suportados pelo HD e o status de cada um. Na sexta coluna (Type) você pode verificar a importância de cada um; os marcados como “Old_age” indicam sintomas de que o HD está no final de sua vida útil, mas não significam por sí só problemas iminentes. Os mais graves são os “Pre-Fail”, que indicam que o HD está no final de sua vida útil.

Na coluna “WHEN_FAILED” (a mais importante), você vê o status de cada opção. Num HD saudável, esta coluna fica limpa para todas as opções, indicando que o HD nunca apresentou os erros:

O número de setores defeituosos no drive (não remapeados) pode ser visto nos atributos “197 Current_Pending_Sector” e “198 Offline_Uncorrectable”, onde o número de bad blocks é informado na última coluna. Em situaçãoes normais, os badblocks não remapeados contém pedaços de arquivos, que a controladora muitas vezes tenta ler por muito tempo antes de desistir.

Em casos extremos, onde existam vários badblocks não marcados, você pode usar o truque de encher o HD com zeros, usando o comando “dd if=/dev/zero of=/dev/hda” para forçar a controladora a escrever em todos os blocos e assim remapear os setores (perdendo todos os dados, naturalmente).

O número de setores defeituosos já remapeados, por sua vez, pode ser acompanhado através dos atributos “5 Reallocated_Sector_Ct” e “196 Reallocated_Event_Count”.

Naturalmente, não basta executar estes testes apenas uma vez, pois erros graves podem aparecer a qualquer momento. Você só terá segurança se eles forem executados periodicamente.

Para automatizar isso, existe o serviço “smartd” (“smartmontools” no Debian), que fica responsável por executar o teste a cada 30 minutos e salvar os resultados no log do sistema, que você pode acompanhar usando o comando “dmesg

No caso do Debian, além de configurar o sistema para inicializar o serviço no boot, você precisa configurar também o arquivo “/etc/default/smartmontools“, descomentando a linha “start_smartd=yes“.

O padrão do serviço é monitorar todos os HDs disponíveis. Você pode também especificar manualmente os HDs que serão monitorados e os parâmetros para cada um através do arquivo “/etc/smartd.conf“.

Comece comentando a linha “DEVICESCAN”. O arquivo contém vários exemplos de configuração manual. Uma configuração comum é a seguinte:

/dev/hda -H -l error -l selftest -t -I 194 -m tux@gmail.com

Esta linha monitora os logs do /dev/hda (erros e testes realizados) e monitora mudanças em todos os atributos (incluindo a contagem de bad blocks e setores remapeados), com exceção da temperatura (que muda freqüentemente) e envia e-mails para a conta especificada sempre que detectar mudanças. Para que ele use apenas o log do sistema, sem enviar o e-mail, remova a opção “-m”.

Para que os relatórios via e-mail funcionem, é preciso que exista algum MTA instalado na máquina, como o Sendmail ou o Postfix. O smartd simplesmente usa o comando “mail” (que permite o envio de e-mails via linha de comando) para enviar as mensagens. No Debian (além do MTA) é necessário que o pacote “mailutils” esteja instalado.

Depois de alterar a configuração, lembre-se de reiniciar o serviço, usando o comando:

# /etc/init.d/smartd restart

ou:

# /etc/init.d/smartmontools

Caso o SMART indique algum erro grave e o HD ainda esteja na garantia, você pode imprimir o relatório e pedir a troca.

A vida útil média de um HD IDE é de cerca de 2 anos de uso contínuo. HDs em micros que não ficam ligados continuamente podem durar muito mais, por isso é saudável trocar os HDs dos micros que guardam dados importantes anualmente e ir movendo os HDs mais antigos para outros micros.

Normalmente, os fabricantes dão 1 ano de garantia para os HDs destinados à venda direta ao consumidor e 6 meses para os HDs OEM (que são vendidos aos integradores, para uso em micros montados). Uma dica geral na hora de comprar HDs é nunca comprar HDs com apenas 3 meses de garantia, que normalmente é dada apenas para HDs remanufaturados.

Nossa recomendação de comando seria:

#/usr/sbin/smartctl -q errorsonly -H -l selftest -l error /dev/sda

Onde sda vai de acordo com sua tabela de discos. Esse comando inclusive reportou em um servidor que gerenciamos a seguinte mensagem:

ATA Error Count: 1
Error 1 occurred at disk power-on lifetime: 1692 hours (70 days + 12 hours)

ou seja, em 70 dias e 12 horas (estimativa feita pelo Smartmontools, nosso disco Morrerá)…

Já nos avisou para substituição do disco em questão.É isso galera, usem e abusem. É gratis!!!

 

Agradecimentos a Carlos E. Morimoto, um mestre em Gnu/Linux 😉

http://www.hardware.com.br/artigos/monitorar-smart/