domingo, 2 de março de 2008

Backup automático do PostgreSQL usando Cron

Para fazer um backup automático de detrminado banco do postgreSQL, basta escrever um shell script conforme abaixo:

#/opt/dailybackup
# Formata data para adicionar ao nome dos arquivos
t=`/bin/date +%d%m%y`
chmod 777 -R /opt/backup
su postgres -c "/usr/bin/pg_dump -i -h localhost -p 5432 -U postgres -F c -f /opt/backup/meubackup"$t".backup" escola

O script gera um backup do Database "escola" de nome "meubackup.backup" no diretório /opt/backup

Para inserir novo agendamento no cron, logue como root e digite:
crontab -e

O Ubuntu abre o arquivo crontab usando o editor nano. Cada linha no crontab é composta por seis campos, separados por espaço, com a seguinte semântica:
minuto hora dia mes diaDaSemana(0-Domingo, 7-Sábado) comando

Desta forma, para executar o script de backup, basta inserir a linha:

30 16 * * * /opt/dailybackup.sh

Isso fará com que o cron dispare a execução do arquivo dailybackup.sh (script que executa o backup) todos os dias, às 16:30hs.
P.S: O comando crontab -l lista todos os agendamentos para o usuário corrente

quinta-feira, 14 de fevereiro de 2008

Instalando e configurando o Tomcat (Linux)

1) Baixar o pacote do Tomcat (não precisa instalar, basta descompactá-lo em /opt/)
2) Criar o seguinte script (é um script "safado", eu sei, mas quebra o galho) de nome tomcat, que ficará na pasta /etc/init.d e será responsável pela inicialização automática do tomcat (juntamente com o sistema operacional):

#! /bin/sh -e
#
# /etc/init.d/tomcat -- script de inicialização para o Tomcat
#
#caminho para o diretorio bin do Tomcat
DIR_TOMCAT=/opt/apache- tomcat-5.5.20/bin
NAME=tomcat
#PIDFILE="/var/run/$NAME.pid"
#LOGDIR="$CATALINA_HOME/logs"

# CATALINA_PID for catalina.sh
#export CATALINA_PID="$PIDFILE"

case "$1" in
start)
$DIR_TOMCAT/startup.sh
echo "Iniciando $NAME em $DIR_TOMCAT "
#touch "$PIDFILE" "$LOGDIR/catalina.out" || true
;;
stop)
echo "Parando $NAME em $DIR_TOMCAT "
$DIR_TOMCAT/shutdown.sh
#rm -f "$PIDFILE"
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: /etc/init.d/tomcat {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0


3) O script acima deve ser salvo na pasta /etc/init.d e receber permissão de execução (chmod +x tomcat)
4) Para criar um link simbólico em cada um dos RCs para este script de inicialização, basta executar (como root): # update-rc.d tomcat.sh defaults
P.S: Caso deseje excluir o script de inicialização e seus links simbólicos dos RCs, digite:
# update-rc.d nome-do-script remove
5) Algumas configurações são muito importantes para o bom funcionamento do Tomcat e serão inseridas no arquivo /bin/catalina.sh:
CATALINA_HOME=/opt/apache-tomcat-5.5.20
JAVA_HOME=/opt/jdk1.5.0_14/
JAVA_OPTS="-server -Xms256m -Xmx512m -Duser.language=pt -Duser.country=BR"
Onde:
CATALINA_HOME:
apenas indica o diretório de instalação do Tomcat
JAVA_HOME:
indica o diretório de instalação do JDK
JAVA_OPTS:
cada parâmetro aqui vem separado um do outro por um espaço, e todos vêm dentro de aspas. "-server" indica para a JVM utilizar todo o poder do compilador dinâmico (a inicialização é mais lenta, mas a execução vai se tornando mais rápida com o uso e profiling); "-Xms256 e -Xmx512" indicam a quantidade de memória que a JVM pode utilizar no sistema (deve ser usado com parcimônia e de acordo com a RAM disponível no computador); "-Duser.language=pt e -Duser.country=BR" destinam-se a impor o locale para a JVM e o Tomcat, de forma a evitar que a aplicação escrita para exibir datas em um formato (por ex.: dd/MM/yyyy) passe "magicamente a exibi-los em outro formato indesejado (ex: 18 Feb, 2008).
6) Para setar uma senha para o gerenciador do Tomcat (versão 5.5), edite o arquivo /conf/tomcat-users.xml, inserindo as linhas:

role rolename="manager-gui"
user username="admin" password="admin" roles="manager-gui" 

Depois, edite o arquivo context.xml, dentro da pasta webapps/manager/META-INF/context.xml 
Altere a linha abaixo, adicionando o seguinte: |200\.231\.23\.45 
Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"

para adicionar o IP 200.231.23.45 à lista de hosts autorizados.

Pronto!! Para rodar o tomcat, basta executar: /etc/init.d/tomcat start ou então aguardar o próximo reinício do computador