Calcular si una carpeta(s) tiene mas de 30 dias de creada

Enero 22, 2007

Aqui dejo este scrip en shell, lo que hace es ver si la carpeta(s) de una ruta determinada tiene un mes de creacion o no con respecto a la fecha actual y si es asi procede a borrarla para que no ocupe espacio en el server.

Considero que no es una vercion final ya que pienso que hay muchos detalles que afinar y recortar (bueno no soy programador de formacion :D ) asi que son bienvenidas las aportaciones, espero que sea de utilidad.

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

#!/bin/bash
# Escrito por Juan Oliva <jroliva at gmail dot com>

#mes acual
MA=$(date +%m)
#dia actual
DA=$(date +%d)

#Variables para pasar el mes recibido
mes1=Jan
mes2=Feb
mes3=Mar
mes4=Apr
mes5=May
mes6=Jun
mes7=Jul
mes8=Ago
mes9=Sep
mes10=Oct
mes11=Nov
mes12=Dec

#path de la carpeta
carpeta=/home/minimark/public_html/entregas/ #realizar el recorido
for dir in `ls -R $carpeta`
do

#capturo el dia de creacion
DC=`ls -l $carpeta | grep $dir | cut -d ‘ ‘ -f8`
#capturo el mes de creacion
MC=`ls -l $carpeta | grep $dir | cut -d ‘ ‘ -f7`

if [[ $MC == $mes1 ]]
then
#variables para sumarle un mes al actual
MD=02
#Llamo a la funcion paso la variable
calculo $MD
fiif [[ $MC == $mes2 ]]
then
MD=03
calculo $MD
fi
if [[ $MC == $mes3 ]]
then
MD=04
calculo $MD
fi
if [[ $MC == $mes4 ]]
then
MD=05
calculo $MD
fi
if [[ $MC == $mes5 ]]
then
MD=06
calculo $MD
fi
if [[ $MC == $mes6 ]]
then
MD=07
calculo $MD
fi
if [[ $MC == $mes7 ]]
then
MD=08
calculo $MD
fi
if [[ $MC == $mes8 ]]
then
MD=09
calculo $MD
fi
if [[ $MC == $mes9 ]]
then
MD=10
calculo $MD
fi
if [[ $MC == $mes10 ]]
then
MD=11
calculo $MD
fi
if [[ $MC == $mes11 ]]
then
MD=12
calculo $MD
fi
if [[ $MC == $mes12 ]]
then
MD=01
calculo $MD
fi

#Funcion que calcula si la carpeta tiene un mes de creada
function calculo()
{
if [[ $MD == $MA ]]
then
#echo “la carpeta $dir se creo el mes $MC y el mes actual es $MA se evaluara los dias “
if [[ $DC == $DA ]]
then
#echo “la carpeta $dir fue creada el $MC / $DC y la fecha de hoy $MA / $DA y ya tiene un mes de creacion extactamente y se borrara ahora “
rm -r $carpeta/$dir
else
#echo “la carpeta $dir fue creada el $MC / $DC y la fecha de hoy $MA / $DA y se borrara recien en $MD / $DC “
fi
else
#echo “La carpeta $dir nose borrar por que se creo $MC / $DC y se borrara en un mes : / $MD / $DC “
fi
}

done
###############################################


Samba entre 2 redes

Enero 16, 2007

Bueno el otro dia me tope con la necesidad de poder acceder a samba desde una red distinta a la que pertenecia.

Tenia el file server en tenia la ip 10.0.0.2 y necesitaba acceder desde desde esta otra red 10.0.1.x

Bueno de todas las opciones que encontre gogleando fue hacer forward por el firewall a las 2 redes y quedo algo asi

iptables -A FORWARD -s 10.0.1.0/24 -d 10.0.0.2 -p tcp –sport 1024:65535 –dport 137:139 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 10.0.1.0/24 -p tcp –sport 137:139 –dport 1024:65535 -j ACCEPT
iptables -A FORWARD -s 10.0.1.0/24 -d 10.0.0.2 -p udp –sport 1024:65535 –dport 137:139 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 10.0.1.0/24 -p udp –sport 137:139 –dport 1024:65535 -j ACCEPT
iptables -A FORWARD -s 10.0.1.0/24 -d 10.0.0.2 -p tcp –sport 1024:65535 –dport 445 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 10.0.1.0/24 -p tcp –sport 445 –dport 1024:65535 -j ACCEPT
iptables -A FORWARD -s 10.0.1.0/24 -d 10.0.0.2 -p udp –sport 1024:65535 –dport 445 -j ACCEPT
iptables -A FORWARD -s 10.0.0.2 -d 10.0.1.0/24 -p udp –sport 445 –dport 1024:65535 -j ACCEPT
Con esto consegui ingresar , despues tuve que habilitar en el samba la parte de wins para que el server se vea en el entorno de red


Una noche en el museo

Enero 9, 2007

Ayer fui a ver “una noche en el Museo” como siempre con mi linda esposa , y bueno para que no me desepciono , claro no es una pelicula que va ganar un oscar pero es entretenida y divertida en un momento hasta te olvidas que es una peli, esta como para pasar un rato agradable con la familia.


Roadwarrior en Openvpn

Enero 9, 2007

Este es un howto bien basico para hacer roadwarrior en openvpn , para esto use Centos 4.2 ,por que ? ,bueno por que funciona muy bien ya lo tengo bastante tiempo en produccion asi que doy fe de ello.

- actualizar el sistema

#yum upgrade

- instalar estos rpm

#rpm -i lzo-1.08-4.2.el4.rf.i386.rpm
#rpm -i rpm -i openvpn-2.0.2-1.2.el4.rf.i386.rpm

- crear el enlace simbolico limpam.so

#cd /lib/
#ln -s libpam.so.0 libpam.so

- generar los certificados

Para esta parte dejo el enlace donde postean como hacerlo http://es.tldp.org/Manuales-LuCAS/doc-guia-ubuntu-breeze/guia-ubuntu-htmls/administracion-miscelanea.html

en resumen debe crearse los archivos : mi-ca.crt , server.crt , server.key

- copiar los archivos de configuracion

cp * /etc/openvpn/
cp -t keys/ /etc/openvpn/

- Archivos de configuracion

tunel.conf deberia quedar algo asi

#vi /etc/openvpn/tunel.conf

verb 5
status openvpn-status.log
log openvpn.log
user nobody
#group nogroup
persist-key
persist-tun
local TU.IP.PULICA
port 559
proto tcp-server
dev tun
#comp-lzo
ca /etc/openvpn/keys/mi-ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/dh1024.pem
server 10.0.1.0 255.255.255.0
keepalive 10 120

ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/cld
push “route 169.254.0.0 255.255.255.0″ #Red interna a la cual de quiere acceder
username-as-common-name #Primer parametro para el roadwarrior
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login # segundo parametro para habilitar el uso de pam
- Iniciar el servicio

tail -f /etc/openvpn/openvpn.log
/etc/init.d/openvpn start
/etc/init.d/openvpn stop

- Conectarse desde un cliente vpn

En linux bastaria con

* instalar openvpn

* conpiar el contenido de la carpeta /etc/openvpn

* /etc/init.d/openvpn start

En windows hay un cliente visual bastante agradable y muy facil de configurar

lo pueden descargar desde aqui  http://openvpn.se/ 


Instalacion de Freebsd , Rapida y sencilla

Enero 9, 2007

Una de las cosas mas maravillosas que tiene este sistema operativo es la facilidad con la que podemos instalarlo a continuacion veremos como instalar freebsd en 20 minutos aproximadamente.

0.- bajarse el iso correspondiente de www.freebsd.org

1.- setear la bios para que botee desde cds

2.- botear con el cd de freebsd

3.- Una cargado el instalador el famoso “/stan/sysinstall” , elegir “estándar”

4.- luego preguntara por el sistema de particionado , si no nos queremos complicar borramos todos las particiones existentes con la letra “D” y pulsamos la letra “A” que creara una particion con el total de espacio en el disco

5.- Luego preguntara por el boot manager elegiremos la segunda opcion “estándar”

6.- entramos a la pantalla de creacion de los puntos de montaje , pulsamos la tecla “A” para que el instalador nos cree un conjunto de puntos de montaje estandar con el cual podemos trabajar ( swap , / , var , tmp , usr )

7.- el siguiente paso es escoger el tipo de instalacion , si deseamos una instalacion sin interfas grafica (que es lo mas recomendable , un servidor no necesita , gnome o kde) solo escogemos developer , kernel developer y user

8.- lo que sigue es decirle al instalador el medio de instalacion , elegimos cd

9.- despues de unos minutos el sistema ya estara instalado ,lanzandoles un mensaje que dice “Felicidades, ahora FreeBSD està instalado en su màquina!”10.- lo que sigue es la famosa post instalacion

10.- lo que sigue es la famosa post instalación, aparacera una ventana para configurar la tarjeta de red , que por suerte la reconoce sin problemas :) , aqui hay unos detalles
10.1.- pregunta si queremos hacer una configuracion IPV6 ,responderemos que no
10.2.- Lo segundo pregunta si queremos jalar la configuracion de un servidor dhcp , si tenemos alguno , como en el caso de las redes de speddy le diremos que si, de lo contrario
entraremos a configurar los parametros manualmente
nombre de la maquina = bsd
dominio = hay podemos ponerle el grupo de trabajo
ip gateway = la puerta de enlace o la ip del router
Name sever = las ips de los servidores dns
Ip address = la ip que queremos asignarle
mascara = la ususaria 255.255.255.0
estra config = no ponemos nada :)

seleccionamos “ok” y pregunta si deseamos activar el dispositivo , repondemos que si

11. Ahora preguntara si deseamos que el equipo funcione como un gateway le respondemos que no
12. Preguntara si deseamos configurar los servicios de ined ,respodemos qeu si , dos veces y luego que “no”

13. Pregunta si deseamos ftp anonimo en la maquina , respondemos que no

14. Pregunta si deseamos NFS en la maquina , respondemos que no

15.- Pregunta si deseamos CLIENTE NFS en la maquina , respondemos que no

16.- Ahora pregunta si deseamos escoger un perfil de seguridad,respondemos que no

17. – Preguntara si deseamos personalizar los atributos de consola , responderemos que no

18.- Ahora configuramos la zona horaria

19.- Ahora preguntara si deseamos activar la conpatibilidad de binarios Linux , responderemos que si

20.- El sistema tiene mouse usb ? , claro que no

21. preguntara si deseamos configurar la parte de X ,respondemos que no

22.- ahora pedira la configuracion del root

23.- ahora mostrara una advertencia de visitar la configuracion general , seleccionamos no

24.- ahora solo queda salir

ufff … bueno Que sigue ??? , bueno eso es parte de otro articulo


Monitoreo de servicios utilizando Big Brother en FreeBSD

Enero 9, 2007

Introduccion

Este documento intentará explicar la instalación y configuración un servidor para monitoreo de servicios utilizando Big Brother en FreeBSD
Al contar con varios servidores y servicios en funcionamiento como correo,web,ftp,dns,bases de datos,etc. La labor de monitoreo se hace vital para garantizar el correcto funcionamiento de éstos,Big Brother es una herramienta que puede presentar a traves de una página web el estado de varios servicios y procesos. Los cuales podemos definir y configurar para que en caso de alguna falla nos envíe un reporte de alerta por correo electrónico.

Requerimientos : Instalacion de Apache

Primero tenemos que tener instalado Apache para ello lo instalamos desde los ports :

# cd /usr/ports/www/apache13 && make install clean
# apachectl start

Con esto ya tenememos operativo nuestro servicio web

Instalación de Big Brother

Antes de instalar el paquete es necesario crear un grupo y un usuario llamado bbuser. Luego descargamos el paquete desde http://www.bb4.org/download.html en un directorio temporal en este caso el archivo bb-1.9e.tar.gz.

descomprimir el archivo bb-1.9e.tar.gz

# tar xvzf bb-1.9e.tar.gz

mover el archivo tar a /usr/local

# mv BBSVR-bb1.9e-btf.tar /usr/local

ingresamos a éste para descomprimirlo

# cd /usr/local
# tar xvf BBSVR-bb1.9e-btf.tar

creamos un vínculo para una mejor gestión

# ln -s /usr/local/bb1.9e-btf bb

ingresamos al directorio de instalación

# cd /usr/local/bb/install

ejecutamos el script de instalación especificando que vamos a instalar en un sistema freebsd

# ./bbconfig freebsd

Despues de ejecutar el script lo que sigue es una serie de preguntas para la instalación

aceptamos los terminos de licencia no comercial

Acept licence : y

ingresamos en usuario que necesita bb para ejecutar

user of the big Brother run:  bbuser

elegiremos yes para poder trabajar con nombres de dominio

use FQDN : yes

preguntará quién va ser quien pulicará la información en este caso localhost

waht host be the bbdisplay : localhost

preguntará quien va ser el host de envio de mensajes de alertas igualmente elegiremos el localhost

what host be the BBPAGER : localhost

vuelve a preguntar quién es el BBDISPLAY

is this host BBDISPLAY = y

igualmente con el BBPAGER

is this host BBPAGER  : y

preguntará por el correo electrónico al cual enviará los mensajes,aceptaremos por defecto el ususario root

email adrres notifications : root@localhost

ingresaremos la direccion url donde se publicará

entrel base url for bb :  http://localhost/bb

le daremos la ruta donde está ubicada la carpeta cgi

enter cgi-bin directory : /usr/local/www/cgi-bin

ahora ingresaremos la url donde están ubicados los cgi-bin

enter base url cgi-bin :  http://localhost/cgi-bin/

preguntará por el usuario y grupo que está usando el servidor web

enter web server user : nobody
enter group name : nobody

ahora tendremos que compilar el big brother para que quede en el sistema de la siguiente forma

# cd /usr/local/bb1.9e-btf/src
# gmake
# make install

ahora haremos propietario al usuario bbuser de las capetas donde tenemos el big brother

# chown -R bbuser /usr/local/bbvar /usr/local/bb1.9e-btf

*)Nota: Para este ejemplo tendremos 2 servidores uno web y otro de correo que vamos a configurar para monitorear

Configuración

Si todo salió bien hasta ahora entonces ya tenemos todo instalado en el sistema.Ahora vamos a configurar los siguientes archivos ubicados en /usr/local/bb/etc.

Archivos de configuración
bb-hosts :donde configuraremos los servidores y servicios a monitorear.
bbwarnsetup.cfg : configuración de parámetros del envío de alertas.
bbwarnrules.cfg : archivo de configuración de reglas de alertas.

Archivo bb-hosts

# vi /usr/local/bb/etc/bb-hosts
#group SERVICIOS PUBLICOS
10.0.0.5 mail.midominio.com # pop3 smtp
10.0.0.6 www.midominio.com # http://www.midominio.com ftp

Archivo bbwarnsetup.cfg

# vi /usr/local/bb/etc/bbwarnsetup.cfg
#codigos de error para cada servicio monitoreado
svcerrlist: disk:100 cpu:200 procs:300 msgs:400 conn:500 http:600 memory:605 https:610 dns:800 ERR:999
#email al que sera enviado el mensaje de alerta
pagemaster:  root@localhost
#grupo de envio de alertas
pg-admins: root@localhost

Archivo bbwarnrules.cfg

# vi /usr/local/bb/etc/bbwarnrules.cfg
#Enter your rules here
#ALERTAS GENERALES
*;;conn;;*;*;pg-admins:~0-50
#ALERTAS POR SERVIDOR
mail.midominio.com;;pop3 smtp;; 1-5;0000-0800 1900-2359;pg-admins:~0-30
www.midominio.com;;ftp http;;1-5;0000-0800 1900-2359;pg-admins:~0-30

Puesta en marcha

Ahora lo único que queda es configurar nuestro servidor web para que permita ver las páginas html que genera Big Brother,de la siguiente forma :

# cd /usr/local/www/data
# ln -s /usr/local/bb/www  bb

Ahora Iniciamos el servicio ingresando como usuario bbuser

# su – bbuser
$ /usr/local/bb/runbb.sh start

ahora ingresamos a http://localhost/bb/ para ver en marcha el monitoreo de servicios

Monitorear un servicio en particular

Se puede dar el caso que necesitamos monitorear un servicio en especial que corre en el puerto 41524 udp para ello haremos lo siguiente :

ingresamos en nuevo servicio en al archivo services

# vi /etc/services
miservicio        41524/udp

Ahora definimos el nuevo servicio dentro de bbdef-server.sh :

# vi /usr/local/bb/etc/bbdef-server.sh

Incluiremos nuestro servicio en la siguiente linea ,de la siguiente forma :

BBNETSVCS="smtp telnet ftp pop pop3 pop-3 ssh imap ssh1 ssh2 imap2 imap3 imap4 pop2 pop-2 nntp miservicio"

Conclusion

Esta herramienta es muy versátil y se puede monitorear no sólo servicios si no también estados del disco duro,procesador,memoria integrandolo con MRTG. Espero que este documento cumpla su objetivo y aportar a la comunidad bsdera,ante cualquier duda,corrección o comentario enviarlo a mi correo.

Agradecimientos

Quiero agradecer a mi futura esposa ya que ella es mi motor y la que me impulsa a realizar todos mis ideales y proyectos.

Fuentes de Información

Big Brother : http://www.bb4.org/

Mrtg and Big Brother integration : http://www.pleiades.com/mrtgbb/

El demonio : http://www.eldemonio.org/documentos/26060513274.html


Involúcrate+

Enero 9, 2007

Este sabado 13 el grupo de usuarios de debian Peru , realizara un evento interesante, me ubiera gustado participar con una ponencia pero me gano el tiempo para presentar algo , bueno sera para la proxima , pero de echo que voy a ir.

aqui el enlace del evento

http://www.debianperu.org/involucrate+


Videos del Dia Debian 2006

Enero 9, 2007

El año pasado tuve la suerte de ser invitado por Debian Peru para participar en una charla relampago sobre un tema que me apasiona qmail-ldap (gracias amigos por tenerme en cuenta), ya posteare mas sobre eso , bueno el tema es que hace unos dias han sido colgados los videos no solo de las charlas relampago (incluyendo mi charla :-) ) si no de todo el evento aqui el enlace. Felicitaciones por el esfuerzo, pienso que deberia en la medida de lo posible un estandar a seguir en todos los eventos que se realizen sobre open source para lograr una mejor difucion.


Hello world!

Enero 9, 2007

Bueno este es mi primer post a mi nuevecito blog , espero poder postear regularmente y asi poder aportar con mi granito de arena al mundo del open source que tanto ha echo por mi

Juan