sexta-feira, 15 de abril de 2011

Marcador de livros da Biblioteca Central Zila Mamede

Frente e Verso

quinta-feira, 14 de abril de 2011

O arquivo da senha do PostgreSQL

O arquivo .pgpass no diretório home do usuário ou o arquivo referenciado pelo PGPASSFILE pode conter senhas para serem usadas se a conecção com o PostgreSQL requerir senha (e nenhuma senha tiver sido especificada de outra forma).

Nos sistemas Linux o arquivo é o ~/.pgpass.
Este arquivo deve conter linhas com a seguinte sintaxe:

nomederede:porta:basededados:nomedeusuario:senha

Cada um dos quatro primeiros campos pode ser um valor literal, ou *. "*" equivale a "qualquer valor". O campo senha tem que ser especificado.
As permissões no arquivo .pgpass devem impedir qualquer acesso que não seja do próprio dono do arquivo. Configure esta restrição pelo comando a seguir:

chmod 0600 ~/.pgpass

Se as permissões são menos rigorosas do que isto, então o arquivo será ignorado.

quarta-feira, 13 de abril de 2011

Usando mysqlcheck para manutenção de tabelas e recuperação em caso de falhas

Desde o MySQL versão 3.23.38 podemos usar a ferramenta de reparos e verificação de tabelas MyISAM. A diferença entre o mysqlcheck e o myisamchk é que o mysqlcheck deve ser usado quando o servidor mysqld estiver em funcionamento, enquanto o myisamchk deve ser usado quando ele não estiver. O benefício do mysqlcheck é que você não precisa mais desligar o servidor mysqld para verificar ou reparar suas tabelas.

O mysqlcheck utiliza os comandos do servidor MySQL CHECK, REPAIR, ANALYZE e OPTIMIZE de um modo conveniente para o usuário.

Existem três modos de chamar o mysqlcheck:

shell> mysqlcheck [OPÇÕES] database [tabelas]
shell> mysqlcheck [OPÇÕES] --databases DB1 [DB2 DB3...]
shell> mysqlcheck [OPÇÕES] --all-databases

O mysqlcheck pode ser usado de uma maneira muito similar ao mysqldump quando o assunto for quais bancos de dados e tabelas devem ser escolhidas.

O mysqlcheck tem um recurso especial comparado aos outros clientes; o comportamento padrão, verificando as tabelas (-c) pode ser alterado renomeando o binário. Se você deseja ter uma ferramenta que repare as tabelas como procedimento padrão, você deve copiar o mysqlcheck para o disco com um outro nome, mysqlrepair, ou crie um link simbólico com o nome mysqlrepair. Se você chamar mysqlrepair agora, ele irá reparar as tabelas como seu procedimento padrão.

Os nomes que podem ser utilizados para alterar o comportamento padrão do mysqlcheck são:
mysqlrepair: A opção padrão será -r
mysqlanalyze: A opção padrão será -a
mysqloptimize: A opção padrão será -o
 
As opções disponíveis para o mysqlcheck estão listadas aqui. Verifique o que a sua versão suporta com o mysqlcheck --help.
  • -A, --all-databases
Verifica todos os bancos de dados. Isto é o mesmo que --databases com todos os bancos de dados selecionados.
  • -1, --all-in-1
Em vez de fazer uma consulta para cada tabela, execute todas as consultas separadamente para cada banco de dados. Nomes de tabelas estarão em uma lista separada por vírgula.
  • -a, --analyze
Análise as tabelas fornecidas.
  • --auto-repair
Se uma tabela checada está corrompida, ela é corrigida automaticamente. O reparo será feito depois que todas as tabelas tiverem sido checadas e forem detectadas tabelas corrompidas.
  • -#, --debug=...
Log de saída de depuração. Normalmente é 'd:t:o,filename'
  • --character-sets-dir=...
Diretório onde estão os conjuntos de caracteres.
  • -c, --check
Verifca erros em tabelas
  • -C, --check-only-changed
Verifica somente tabelas que foram alteradas desde a última conferência ou que não foram fechada corretamente.
  • --compress
Utilize compressão no protocolo server/cliente.
  • -?, --help
Exibe esta mensagem de ajuda e sai.
  • -B, --databases
Para verificar diversos bancos de dados. Perceba a diferença no uso; Neste caso nenhuma tabela será fornecida. Todos os argumentos são tratados como nomes de bancos de dados.
  • --default-character-set=...
Configura o conjunto de caracteres padrão.
  • -F, --fast
Verifica somente as tabelas que não foram fechadas corretamente
  • -f, --force
Continue mesmo se nós obtermos um erro de sql.
  • -e, --extended
Se você estiver utilizando esta opção com CHECK TABLE, irá garantir que a tabela está 100% consistente, mas leva bastante tempo.
Se você utilizar esta opção com REPAIR TABLE, ele irá executar um comando de reparos na tabela, que não só irá demorar muito tempo para executar, mas também pode produzir muitas linhas de lixo.
  • -h, --host=...
Conecta à máquina.
  • -m, --medium-check
Mais rápido que verificação extendida, mas encontra somente 99.99 de todos os erros. Deve resolver a maioria dos casos.
  • -o, --optimize
Otimizador de tabelas
  • -p, --password[=...]
Senha para usar ao conectar ao servidor. Se a senha não for fornecida será solicitada no terminal.
  • -P, --port=...
Número de porta para usar para conexão.
  • -q, --quick
Se esta opção for utilizada com CHECK TABLE, evita a busca de registros verificando links errados. Esta é a conferência mais rápida.
Se você estiver utilizando esta opção com REPAIR TABLE, ela tentará reparar somente a árvore de índices. Este é o método de reparo mais rápido para uma tabela.
  • -r, --repair
Pode corrigir quase tudo exceto chaves únicas que não são únicas.
  • -s, --silent
Exibe somente mensagens de erro.
  • -S, --socket=...
Arquivo socket para usar na conexão.
  • --tables
Sobrepõe a opção --databases (-B).
  • -u, --user=#
Usuário para o login, se não for o usuário atual.
  • -v, --verbose
Exibe informação sobre os vários estágios.
  • -V, --version
Exibe informação sobre a versão e sai.

terça-feira, 12 de abril de 2011

Executando mysqldump sem senha

Se você executar o comando mysqldump manualmente, o mysqldump solictará senha de acesso ao MySQL. Se você quiser agendar a execução do mysqldump no Crontab, você precisará procurar uma solução para desabilitar a solicitação de senha. Eu tive configurado o mysqldump para exportar meu banco de dados via Crontab sem a solicitação da senha. Tudo o que precisamos fazer é adicionar um arquivo no diretório /home do usuário que vai executar o mysqldump.

Para executar o mysqldump sem senha no Crontab, siga os passos abaixo:

Entre no terminal e efetue login no seu servidor;
Crie um arquivo chamado .my.cnf no diretório /home:

nano ~/.my.cnf

No arquivo .my.cnf digite o seguinte conteúdo:

[mysqldump]
user = O USUÁRIO DO MYSQL
password = A SENHA DO MYSQL

Mude as permissões do arquivo para 600, afim de prevenir que outros usuários leiam o conteúdo do arquivo:

chmod 600 ~/.my.cnf

Agora podemos tentar executar o comando mysqldump e o sistemas não solicitará a senha de acesso.

segunda-feira, 11 de abril de 2011

Resolvendo o erro 28 do MySQL

"Query failed (titulo): Got error 28 from storage engine"

Caso surja esta mensagem em consulta ao banco de dados, execute o comando "df -kh" no terminal para verificar a porcentagem de uso do disco. Provavelmente o disco rígido ou a partição onde está gravado o diretório raíz do Linux está 100% ocupado.

domingo, 10 de abril de 2011

Como recuperar sua senha de root para o MySQL no Debian

Passo 1:

Certifique-se de que você tem o mysql-server instalado. Se não tiver, esse pode ser um indício da sua incapacidade de acessar o banco de dados. Pode instalá-lo a partir do shell com o comando “aptitude install mysql-server” (sem as aspas, obviamente).

Aproveite e instale também o cliente “aptitude install mysql-client”.

Passo 2:

Vamos parar o mysql:

/etc/init.d/mysql stop

Passo 3:

Inicie novamente o MySQL em plano de fundo, mas em modo de segurança e com a gloriosa flag abaixo mencionada:

/usr/bin/mysqld_safe --skip-grant-tables &

Passo 4:

Agora que já tem o MySQL ativo com a flag, ele vai te deixar entrar diretamente sem senha:

mysql --user=root mysql

Passo 5:

Mude a senha e faça reset ao cache de permissões:

mysql> update user set Password=PASSWORD('nova senha aqui') WHERE User='root';
Query OK, 3 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> exit
Bye

Passo 6:

Vamos trazer o MySQL (que está em modo de segurança) ao primeiro plano:

fg

E vamos para-lo com as teclas Control+C.

Passo 7:

Reinicie o MySQL em modo normal:

/etc/init.d/mysql start

Prontinho. Anote a senha e não volte a se esquecer.

sábado, 9 de abril de 2011

Encontrando processos zumbis

Se você tem um servidor que não está funcionando muito bem, é possível que o processo o qual você quer usar estaja em um estado "zumbi". Você pode ver que há um processo zumbi com o visualizador de processos Top, por exemplo. Mas com o Top você nem sempre podever qual processo é o zumbi.

Se nós usamos o comando seguinte podemos ver quais processos são zumbis.
 
ps -el | grep 'Z'

Com o comando normal ps -el você vê uma saída com os estados dos processos na segunda coluna. Aqui estão alguns estados:

S : sleeping
R : running 
D : waiting (over het algemeen voor IO) 
T : gestopt (suspended) of getrasseerd 
Z : zombie (defunct)

A saída abaixo é um exemplo. Nele podemos ver que dovecot-auth é o processo zumbi.

[root@s324 /]# ps -el | grep 'Z'
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
1 Z 0 1213 589 0 75 0 - 0 funct> ? 00:00:00 dovecot-auth

sexta-feira, 8 de abril de 2011

Autenticação automática sem senha com protocolo SSH

Sempre que se estabelece uma conexão baseada no protocolo SSH (por exemplo, com os comandos SSH, SCP, SFTP ou RSYNC) é necessário digitar a password (senha) em algum momento do processo.


Este texto explica como estabelecer uma ligação usando o protocolo SSH sem uso de senha (SSH password-less) e com total segurança. Isto é útil para uso, por exemplo, em scripts de backup.


1) Criação das chaves


Vamos criar as chaves. Para isso em modo terminal, digitar o seguinte comando:
ssh-keygen -t rsa

O comando anterior irá criar uma chave de 512 bits usando o algoritmo de criptografia RSA. Mas se quisermos melhorar a segurança da nossa chave, podemos criar uma chave de 1024 bits. Assim, em alternativa podemos usar o seguinte comando:


ssh-keygen -b 1024 -t rsa
Após o passo anterior, irá ser pedido qual o arquivo onde se guarda a chave. Apenas pressione a tecla “enter” para passar à fase seguinte.

Enter file in which to save the key (/home/ac/.ssh/id_rsa):
 
Em seguida será pedida a “passphrare” (ou “frase senha”). Não digite nada e apenas aperte “enter”.
Enter passphrase (empty for no passphrase):
Será pedida uma confirmação da “frase senha”. De novo passe adiante usando a tecla “enter”.

Enter same passphrase again:
Chegou agora à conclusão do procedimento de criação das chaves. Aparecerá uma mensagem semelhante a esta:

Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
Estão criados agora 2 arquivos:
~/.ssh/id_rsa – chave privada que nunca deverá partilhar;
~/.ssh/id_rsa.pub – chave publica que deverá ser colocada nas máquinas onde se pretende ligar sem usar senha.

Para melhorar a segurança da chave privada e impedir que esta seja lida por terceiros que usem o seu computador, executar o seguinte comando:

chmod 0600 ~/.ssh/id_rsa
Note que qualquer pessoa que tenha esta chave (a sua chave privada!) poderá usurpar a sua identidade e se fazer passar por si.

2) Colocação da chave pública em servidores remotos

Podemos agora passar à colocação da chave pública nos servidores remotos. Vamos assumir neste exemplo que há um servidor remoto com o nome remote_host e nesse servidor temos o utilizador remote_user.

O arquivo ~/.ssh/authorized_keys da maquina remote_host contêm uma lista de chaves públicas. Vamos acrescentar o rsa.pub (sua chave pública) à lista de chaves públicas na máquina remote_host. Começamos por copiar o id_rsa.pub para a remote_host.

scp ~/.ssh/id_rsa.pub remote_user@remote_host:rsa.pub_importado
 
Em seguida, vamos adicionar a chave criada às chaves autorizadas. Conectamos ao servidor via SSH:
ssh remote_user@remote_host
Criamos o diretório .ssh, caso não exista, e adicionamos a chave:
mkdir .ssh
chmod 0700 .ssh
cat rsa.pub_importado >> .ssh/authorized_keys
chmod 0644 .ssh/authorized_keys
rm rsa.pub_importado
exit
3) Teste
A partir deste momento poderá conectar-se ao servidor remoto usando os vários comandos do protocolo SSH sem necessitar de digitar a senha. Exemplo:
ssh remote_user@remote_host

quinta-feira, 7 de abril de 2011

Permitir acesso ao diretório do phpPgAdmin no servidor web

Na instalação do phpPgAdmin, o diretório da aplicação não é instalado no diretório /var/www, como muitos inicialmente pensam. O diretório padrão do phpPgAdmin é o /usr/share/phppgadmin.

Para acessar o phpPgAdmin ao digitar no navegador o endereço do servidor com o /phppgadmin no final do endereço, é necessário editar o arquivo /etc/apache2/httpd.conf, adicionando o conteúdo abaixo:

Alias /phppgadmin /usr/share/phppgadmin
<Directory /usr/share/phppgadmin>
order deny,allow
deny from all
allow from X.X.X.X (Substitua o X.X.X.X pelo IP de host ou IP de rede a ter permissão de acesso)
</Directory>

O Alias acima traduz /phppgadmin para o caminho /usr/share/phppgadmin.
Em caso de especificar endereço de rede, seria necessária também a máscara de rede em bits. Por exemplo: 10.3.3.50/23.

quarta-feira, 6 de abril de 2011

Compactando e descompactando arquivos no Linux

Olá pessoal, aqui vai um artigo pra ajudá-los a compactar e descompactar arquivos no Linux, nos formatos .tar, .tar.gz e .tar.bz2.

========== .tar ==========

Compactação de arquivos .tar
Use a seguinte sintaxe:
tar -zcf nome_arq.tar nome_dir_ou_arq_a_ser_compactado
Ex:

tar -zcf pacote.tar arquivo1.gif memorando.htm carta.doc
(compactação de 3 arquivos individuais)
ou
tar -zcf pacote.tar meus_documentos/
(compactação de um diretório)

É importante salientar que você deve estar no diretório onde estão os arquivos ou o diretório a serem compactados.

Feito esse procedimento, já estará gerado com compactação o arquivo.tar

* Para descompactá-lo use:
tar -zxvf nomedoarq.tar

Com isso, os arquivos serão restaurados dentro do diretório onde estavam, caso tenha sido feita a compactação de uma pasta, ou no local onde o arquivo .tar.gz está, se tiverem sido compactados arquivos individuais.

========== .tar.gz ==========
Compactação de arquivos .tar.gz
Use a seguinte sintaxe:

Primeiro gere o arquivo .tar com o comando:
tar -cf nomedoarq.tar nomedodir_ou_arq_a_ser_compactado

Ex:
tar -cf pacote.tar arquivo1.gif memorando.htm carta.doc
(compactação de 3 arquivos individuais)
ou
tar -cf pacote.tar meus_documentos/
(compactação de um diretório)

É importante salientar que você deve estar no diretório onde estão os arquivos ou o diretório a serem compactados.

Depois é só gerar o .tar.gz assim:
gzip -9 nomedoarquivo.tar
Ex:
gzip -9 pacote.tar

Com isso você já terá o arquivo pacote.tar.gz.
* Para descompactá-lo use os seguintes procedimentos:

gzip -d pacote.tar.gz
tar -zxvf pacote.tar
Com isso, os arquivos serão restaurados dentro do diretório onde estavam, caso tenha sido feita a compactação de uma pasta, ou no local onde o arquivo .tar.gz está, se tiverem sido compactados arquivos individuais.

========== .tar.bz2 ==========

Para obter a compactação máxima, este sem dúvida seria o melhor formato, e para gerá-lo use o seguinte procedimento:

1) Gere o arquivo.tar com a seguinte sintaxe:
tar -cf nome_arq.tar nome_arq ou nome_dir_a_ser_compactado 

Ex:
tar -cf pacote.tar arquivo1.gif memorando.htm carta.doc
(compactação de 3 arquivos individuais)
ou
tar -cf pacote.tar meus_documentos/
(compactação de um diretório)

2) Gere agora o .tar.bz2 da seguinte forma:
bzip2 nome_arq.tar
Ex:
bzip2 pacote.tar

É importante salientar que você deve estar no diretório onde estão os arquivos ou o diretório a serem compactados.

Com esse procedimento será gerado o arquivo pacote.tar.bz2,

Para descompactá-lo use o seguintes procedimentos:
bunzip2 pacote.tar.bz2

Com isso teremos o arquivo.tar de volta. Depois, para desempacotar o .tar use:
tar -zxvf pacote.tar

E os arquivos serão descompactados em seu lugar de origem, ou, em caso de arquivos individuais, eles serão extraídos no local onde está o arquivo.tar.

Informativo SAMU

terça-feira, 5 de abril de 2011

Permitir acesso ao diretório do phpMyAdmin no servidor web

Na instalação do phpMyAdmin, o diretório da aplicação não é instalado no diretório /var/www, como muitos inicialmente pensam. O diretório padrão do phpMyAdmin é o /usr/share/phpmyadmin.

Para acessar o phpMyAdmin ao digitar no navegador o endereço do servidor com o /phpmyadmin no final do endereço, é necessário editar o arquivo /etc/apache2/httpd.conf, adicionando o conteúdo abaixo:

Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>

order deny,allow
deny from all
allow from X.X.X.X (Substitua o X.X.X.X pelo IP de host ou IP de rede a ter permissão de acesso)

</Directory>

O Alias acima traduz /phpmyadmin para o caminho /usr/share/phpmyadmin.
Em caso de especificar endereço de rede, seria necessária também a máscara de rede em bits. Por exemplo: 10.3.3.50/23.