Posts filed under 'Linux'

Excluindo arquivos antigos no Linux

Me deparei com a necessidade de excluir arquivos criados a mais de 10 dias.

Solução:

find ./ -mtime +1 -exec rm {} \;
Exclui todos os arquivos modificados a mais de um dia, na pasta corrente.
find ./tmp* -mtime +1 -exec rm {} \;
Exclui todos os arquivos modificados a mais de um dia, na pasta corrente, e que iniciam com nome tmp

Espero que este post seja útil.

Add comment Outubro 15, 2009

Utilizando rsync para backup de dados automático entre servidores

Precisei sincronizar algumas pastas do nosso servidor principal para um servidor secundário. Utilizamos dois servidores Ubuntu 8.04. A solução veio com o Rsync, que já vem instalado por padrão nesta distribuição.

No computador destino criei a pasta /home/tiago/sincronizacao-servidor.

Lendo o man do rsync cheguei a conclusão que, para o meu caso, alguns parâmetros serão úteis:

v - verbose
-r, --recursive recurse into directories
-u, --update skip files that are newer on the receiver
-h, --human-readable output numbers in a human-readable format
-i, --itemize-changes output a change-summary for all updates
-P same as --partial --progress
-t Preserva a data original do arquivo
--delete-excluded

Então minha linha de comando ficaria mais ou menos assim:
rsync -vtruhiP --delete-excluded /var/www/ tiago@192.168.0.3:/home/tiago/sincronizacao-servidor/

Este comando funciona corretamente, mas pede a senha do usuário tiago na máquina destino. Como desejo que o rsync seja executado sem minha intervenção, precisarei de uma solução para isto.

Na máquina origem execute a seguinte instrução (no meu caso como usuário root):
ssh-keygen -t dsa -f ~/.ssh/id_dsa
E vá teclando enter nas opções que for pedido. Não informe nada.

Copie o arquivo criado /home/tiago/.ssh/id_dsa.pub para o servidor destino
scp /root/.ssh/id_dsa.pub tiago@192.168.0.3:/home/tiago/.ssh/

No servidor destino, execute o seguinte comando
cat /home/tiago/.ssh/id_dsa.pub >> /home/tiago/.ssh/authorized_keys

Execute o comando rsync novamente e veja que não é mais solicitado senha. Se ainda pedir, reinicie os servidores. Caso reinicie e continue pedindo, execute todos os passos anteriores deste post novamente.

Criei um script para executar o rsync e criar um log disso (script achei na internet, citarei as fontes no final)

vim executa_sincronizacao.sh
E inseri neste arquivo o seguinte código:

#!/bin/bash
INICIO=`date +%d/%m/%Y-%H:%M:%S`
LOG=/var/log/rsync/`date +%Y-%m-%d`.txt
echo " " >> $LOG
echo " " >> $LOG
echo "|--------------------------------------------" >> $LOG
echo " Sincronizacao iniciada em $INICIO" >> $LOG
rsync -vruhiP --delete-excluded /var/www/ tiago@192.168.0.3:/home/tiago/sincronizacao-servidor/ >> $LOG
FINAL=`date +%d/%m/%Y-%H:%M:%S`
echo " Sincronizacao Finalizada em $FINAL" >> $LOG
echo "|--------------------------------------------" >> $LOG
echo " " >> $LOG
echo " " >> $LOG


E dei permissão para execução no arquivo>
chmod 775 executa_sincronizacao.sh
Criei a pasta rsync dentro de /var/log/, para sejam criados os logs nesta pasta:
mkdir /var/log/rsync

Depois disso coloquei no crontab para executar o executa_sincronizacao.sh de tempos em tempos.

Espero que este post seja útil:

Fontes consultadas:
http://www.dicas-l.com.br/dicas-l/20041227.php
http://www.guiadohardware.net/comunidade/sincronizar-pastas/942084/

Add comment Outubro 15, 2009

Instalando IbWebAdmin – Ferramenta de gerenciamento de banco de dados Firebird via Web

Ótimo artigo explicando como instalar o IBWebAdmin. Para quem não conhece o IbWebAdmin é um gerenciador de banco de dados, na mesma linha do IBExpert, mas roda totalmente no browser.
Vale lembrar que o artigo toma como base que você irá instalá-lo em um servidor Linux. Penso que em servidor windows não mude grande coisa.

Espero que este post seja útil.

http://www.vivaolinux.com.br/dica/Instalando-o-IBwebadmin

Add comment Outubro 7, 2009

Apache2 – Não listar conteúdo de diretórios

Se você instalou o apache, e você não deseja que seus visitantes vejam todo o conteúdo de uma pasta que não contém o arquivo index.php ou index.htm, edite o arquivo /etc/apache2/sites-available/nome_do_seu_site e insira o conteúdo Options -Indexes abaixo da linha DocumentRoot. Segue abaixo os passos:

vim /etc/apache2/sites-available/nome_do_seu_site

2) Conteúdo do arquivo /etc/apache2/sites-available/nome_do_seu_site:
<VirtualHost *>
ServerAdmin seu_email@seu_site_com_br
ServerName seu_dominio.com.br
ServerAlias www.seu_dominio.com.br

# Indexes + Directory Root.
DirectoryIndex index.html index.htm index.php
DocumentRoot /var/www/pasta_do_seu_site/
Options -Indexes
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/pasta_do_seu_site/cgi-bin/

Options +ExecCGI
# Logfiles
ErrorLog /var/log/apache2/nome_do_seu_site.error.log
CustomLog /var/log/apache2/nome_do_seu_site.access.log combined

</VirtualHost>

Espero que este post seja útil.

Add comment Outubro 1, 2009

Alteração no formato de data no PHP 5 -> Firebird 2.0

Quando migrei os dados de um servidor Debian 4 com PHP4 e Firebird 1.5 para Ubuntu 8.04 com Firebird 2 tive problemas em tratar a exibição de datas retornadas do banco. Como tenho muitos scripts que dependem do formato da data antiga (Mês/Dia/Ano) resolvi alterar diretamente no servidor o formato, ao invés de alterar os vários scripts que tinha.
A solução foi adicionar ao arquivo /etc/php5/apache2/php.ini a diretiva [interbase], e colocar o novo formato de data que eu queria. Para isso executei os seguintes comandos (como usuário root):

vim /etc/php5/apache2/php.ini

E no final deste arquivo eu inseri o seguinte conteúdo:
[interbase]
ibase.dateformat="%m/%d/%Y"

Restartei o Apache
/etc/init.d/apache2 restart

E pronto..tudo funcionou perfeitamente como era antes.

Espero que este post seja útil.

Add comment Setembro 28, 2009

Executando scripts na inicialização do Ubuntu 8.04

Precisei iniciar um script em PHP na inicilização do Ubuntu. Este script faz uma consulta no banco de dados MySQL de 30 em 30 segundos. Mostrarei neste post somente como fiz para colocar na inicialização.

1) Criei um arquivo em /var/ um arquivo chamado chama_monitora_email.sh, com o seguinte conteudo:
/usr/bin/php /var/www/site/scripts/monitora_email.php &

2) Dei permissão de execução ao arquivo
chmod 775 /var/chama_monitora_email.sh

3) Entrei no diretório /etc/rc.2/ e criei um link simbólico para o seu arquivo:
ln -s /var/chama_monitora_email.sh S99chama_monitora_email

4) Executei um reboot e para verificar se o script estava rodando utilizei o seguinte comando:
ps aux | grep monitora
E lá apareceu o dito cujo
root 4510 0.0 1.4 17356 6768 ? S 16:29 0:00 /usr/bin/php /var/www/site/scripts/monitora_email.php

Espero que este post seja útil para alguém.

Add comment Setembro 24, 2009

Instalando pure-ftp com autenticação em BD MySQL

Utilizei o tutorial abaixo para instalar o pure-ftp com suporte ao BD Mysql.

http://www.vivaolinux.com.br/artigo/Pureftpd-Servidor-de-FTP-com-MySQL-quota-e-usuarios-virtuais?pagina=1

O que não está no tutorial mas é interessante saber:
Para habilitar o modo passivo (passive mode) crie um arquivo chamado PassivePortRange dentro da pasta /etc/pure-ftp/conf/ e informe dentro deste arquivo o range de portar que você quer utilizar. Por exemplo:

40000 41000

Mas aqui neste server que fiz agora não consegui logar com sucesso. Verifiquei no syslog a seguinte entrada:
pure-ftpd: (?@?) [ERROR] Sorry, invalid address given

Encontrei neste post que resolveria a questão se eu levantasse o serviço com a opção -H. Fiz isso e começou a logar tranquilamente.
Outro problema que tive foi em relação ao login pelo internet explorer, que exibia um erro e não abria a caixa de login. No faq disponível no site do pure-ftp existe como resolver isso. Minha solução foi criar um script para levantar o serviço com as opções -E e -b. O conteudo do meu arquivo que levanta o serviço ficou assim:
/usr/sbin/pure-ftpd-mysql -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -A -p 40000:41000 -O clf:/var/log/pure-ftpd/transfer.log -E -u 999 -B -H -E -b

E pronto..tudo funcionando direitinho.

Espero que este post seja útil para alguém.

Add comment Setembro 22, 2009

Configurando múltiplos domínios no Ubuntu.804 e Apache2

Ótima dica de como configurar o Apache2 para responder por múltiplos domínios em pastas diferentes.

http://www.corey-m.com/blog/?p=315

Add comment Setembro 22, 2009

Instalando Apache2+MySQL 5 + phpMyAdmin + Firebird 2 no Ubuntu 8.04

No link abaixo você encontra um ótimo tutorial para instalação destes aplicativos no Ubuntu 8.04, com excessão do Firebird2 que postarei os comandos no final do post

http://littleoak.wordpress.com/2008/07/04/ubuntu-804-apache2-php5-mysql5-phpmyadmin-lamp2-no-ubuntu-804/

Para instalar o Firebird 2 :
sudo su
root@srv-teste:/# apt-get install firebird2.0-super libfbclient2 php5-interbase

Provavelmente você receberá o seguinte erro:
Erros foram encontrados durante processamento de:
firebird2.0-super
E: Sub-process /usr/bin/dpkg returned an error code (1)

No meu caso eu criei dois diretórios que estavam faltando:
mkdir /var/run/firebird
mkdir /var/run/firebird/2.0
OBS: Se o “erro” que você recebeu é este:
* Firebird 2.0 server manager not running.
* Not starting Firebird 2.0 server manager
* Use `dpkg-reconfigure firebird2.0-super' to enable.

não será necessário criar os diretórios.

Agora execute o comando
root@srv-teste:/# dpkg-reconfigure firebird2.0-super
Escolha a opção Sim e defina uma senha para o usuário SYSDBA.

Ao administrar usuários no phpMyAdmin talvez você se depare com a seguinte mensagem de erro:
Warning: Your privilege table structure seems to be older than this MySQL version!
Please run the script mysql_fix_privilege_tables that should be included in your MySQL server distribution to solve this problem!

Execute como root o seguinte comando:
root@srv-teste:/# mysql_fix_privilege_tables --password=senha_usuario_root_mysql

Depois restarte o MySQL
root@srv-teste:/# /etc/init.d/mysql restart

Espero que o post seja útil.

Add comment Setembro 16, 2009

Descobrir tamanho do diretório no Linux

O comando ls-ls não informa o tamanho que determinado diretório ocupa em disco. Para obter esta informação utilize o comando:

du -sh [diretório]

Exemplo

du -sh /var/www

 

Espero que este post seja útil.

Add comment Setembro 14, 2009

Previous Posts


Categorias

Categorias

Apache2 Diversão Firebird Javascript Linux mysql Outros PHP Voip

Posts recentes

twitter.com/troliveira