Category Archives: programación

Mi propio logrotate

Tengo la siguiente estructura para almacenar los logs de los sitios que tiene el servidor sitio.tld/subdomino-<access|error>.log, necesitaba que cada uno los sitios tuviera su propio registro de estadisticas utilizando awstats, el problema es que no super como hacer que cada vez que se ejecutara el rotatelog se actualizaran todas las estadisticas para cada uno de los dominios. Por lo que decidí hacer mi pripio logrotate utilizando bash y cron, el script es el siguiente:


#! /bin/bash

/usr/lib/cgi-bin/awstats.pl -config=awstats -update

for i in $(ls /var/log/apache2/); do

cd /var/log/apache2/

if [ -d $i ]; then

#ejecutar awstats
cd /etc/awstats/
config=awstats.$i.conf
if [ -f $config ];then
/usr/lib/cgi-bin/awstats.pl -config=$i -update
fi

#ejecutar el rotate
cd /var/log/apache2/$i
for j in $(ls *.log); do
savelog -m777 -q $j

#reiniciar apache2
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
done
else
#archivos sueltos
savelog -m777 -q $i
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
fi

done

luego con un cron corro el script cada X dias

El funcionamiento es el siguiente. Reviso el directorio /var/www buscando los directorios que existen ahi (recordemos que un directorio es un sitio.tld) luego compruebo que exista el archivo de configuracion para ese dominio, de ser así ejecuto el awstats y luego realizo el savelog y reinicio el apache para que cree el nuevo log.

Soy un n00b en bash, se que el script se puede optimizar, espero sus mejoras :)

Nuevo proyecto buscopension.com

Finalmente he terminado la version beta de mi proyecto buscopension.com (actualmente la url es http://beta.buscopension.com), la idea de este proyecto es facilitar la vida a las personas que están en busca de una pension (en un principio dentro de la ciudad de Concepción), el concepto es simple cada dueño de pension agrega su pension utilizando el mapa (previo registro) y luego todos los visitantes podrá buscar una pension utilizando el mapa o simplemente señalando cerca de que lugar quieren ubicar una pension.

Ahora solicito su ayuda para que revisen el sitio y reporten los errores y agregen las pensiones :)

Gracias a bilson por la ayuda durante la programación y a todos lo que reportaron errores (que no fueron pocos).

http://beta.buscopension.com

366 formas de escribir “Hello World”

Para los programadores es usual comenzar con un “Hello World” como primer programa con algún lenguaje, básicamente para comprender un poco de su sintaxis, via Digg encontré este página donde aparece “Hello World” escrito en 366 lenguajes distintos. Un link que cualquier programador o geek debería ver aunque sea de pasada.

The Hello World Collection

Google x 10

Como muchos sabrán Google ha presentado su plataforma para dispositivos móviles llamada Android además ha liberado un SDK para desarrolladores y un gran y millonario concurso para desarrolladores (si quieren mas información les recomiendo que lean blooG.cl), por lo que podemos ver los chicos de Google se están tirando con toda la carne a la parrilla al presentar esta plataforma abierta (la primera). Pero este no es el motivo central de mi post :P, mientras estaba revisando code.google.com me encontré con una serie de vídeos sobre las presentaciones que desarrollo Google durante este verano 2007 (invierno para nosotros en el hemisferio sur) y me pareció interesante esta serie de 5 vídeos (con sus respectivas presentaciones sobre Cluster y Sistemas Distribuidos).

 

Les dejo los links para que los revisen (siempre es bueno ver estas charlas que no llegan a Chile), además de una serie de links que consideré importantes (de todos mis feeds) sobre Android.

 

android_adc