miércoles, 15 de abril de 2009

Mis Feeds

En el post anterior he olvidado mi fichero de feeds. [ Este es el fichero ].

watch

08:00 de la mañana. Entro en la oficina; saludo con un "Buenos días". Enciendo el PC(Debian GNU/Linux SID/Testing/No sé que 2.6.27.1). Lo "primero" que hago es bajar el correo.Lo "segundo" es revisar mis RSS. Desde hace un par de años más o menos tengo total dependencia de los feeds.Lo reconozco: leo RSS a diario; también reconozco que me envuelven en un bucle del que, a veces, sobre todo en casa, me cuesta insertar un "break". Un site realmente bueno, es CommandLineFU, con una frecuencia de actualización muy buena, y sobre todo, muy buenas aportaciones. Esta mañana me ha soprendido una en la que se hacía referencia al comando watch, el cual desconocía por completo. En la página del manual( man watch) encontraréis más info. Básicamente, sirve para ejecutar un programa periódicamente, y mostrar el resultado por pantalla.
Ejemplo: Monitorizar las conexiones tcp:

[root@localhost] watch -n 1 "netstat -tpanl | grep ESTABLISHED"

Para este tipo de cosas prefiero iptraf...


martes, 14 de abril de 2009

Sinde Pírate

lunes, 13 de abril de 2009

UTF-8, Apache2 y PHP5

Hace tiempo,un año más o menos, escribí un post en el que comentaba los pasos para habilitar la codificación UTF-8 para el webmail squirremail.

Un año después, me envían un fichero SQL con información para alimentar campos para la BBDD del proyecto en el que estoy trabajando actualmente. La codificación de esta tablas está en

martes, 7 de abril de 2009

Script Backup [ tar , md5 , cifs ]

Dejo un pequeño script para backups en un disco Western Digital de 1TB con Ethernet 1GB. Resumen:
  • De Lunes a Sabado realiza backup de los directorios definidos en $DESTINO.
  • Los Domingos añade los directorios definidos en $DIRECTORIO_ADICIONALES.
  • Mantiene los ficheros durante 14 días.Suficiente en este caso.
  • Opcion gzip comentada, haciendo pruebas me interesaba observar el funcionamiento del script.Se recomienda descomentar la linea.
  • Comprueba el montaje del directorio destino, en este ejemplo /usb/copias.
  • Detalles en el fichero log especificado en la variable $REPORTE.
  • Genera suma md5 del fichero y lo imprime en el log.
  • Envia por correo el resultado del backup.
No es nada del otro mundo, pero funciona. Las sugerencias son bienvenidas!

#!/bin/bash
#Backup Script Alberto Permuy Leal
#Version 0.0.1
#Licencia: GPLv2 o cualquiera de sus variantes
#
#
#
#
#Fecha: Abril 2009
#
#
#Definicion de variables
#
#Fichero Reporte Backup
REPORTE=/tmp/reporte-backup-$(date +%d-%m-%y).txt
#
#Variables Tiempo
FECHA=$(date +%d-%m-%y)
DIA_SEMANA=`echo $(date +%w)`
#
#Variables Host/Fichero
HOST=`/bin/hostname `
SISTEMA=`/bin/uname -sr `
#
#
#Variables Generales
DESTINO="/usb/copias"
DIRECTORIOS_BACKUP="/etc /root /var/lib/mysql"
DIRECTORIO_ADICIONALES="/var/log"
DESTINATARIO="user@dominio.com"
ASUNTO="InformeBackup"
#
#
#CABECERA
rm -rf $REPORTE
touch $REPORTE
echo "-----------------------------" > $REPORTE
echo "REPORTE BACKUP " >> $REPORTE
echo "-----------------------------" >> $REPORTE
echo "" >> $REPORTE
echo "Host:"$HOST >> $REPORTE
echo "Sistema:"$SISTEMA >> $REPORTE
echo "" >> $REPORTE
echo "Fecha Copia Seguridad :"$FECHA >> $REPORTE
echo "El destinatario del email es:"$DESTINATARIO >> $REPORTE
###############################################################
# #
#COMIENZO DEL SCRIPT #
# #
###############################################################
if [ -d /usb/copias ]; then
echo "Parece que el disco USB está montado"
else
echo "Montando disco USB"
mount.cifs //192.168.1.200/PROGRAMAS /usb -o username=user,password=pass,rw
echo "Fin montaje"
fi
#
#
case $DIA_SEMANA in
1)
NOMBRE_DIA="lunes"
;;
2)
NOMBRE_DIA="martes"
;;
3) NOMBRE_DIA="miercoles"
;;
4)
NOMBRE_DIA="jueves"
;;
5) NOMBRE_DIA="viernes"
;;
6) NOMBRE_DIA="sabado"
;;
0) NOMBRE_DIA="domingo"

esac

case $DIA_SEMANA in

[1-6])
echo "Hoy es :"$NOMBRE_DIA
echo "Backup iniciado a las: "`date |awk '{ print $4 }'` >> $REPORTE
rm -rf $DESTINO/$NOMBRE_DIA-old.tar
mv $DESTINO/$NOMBRE_DIA.tar $DESTINO/$NOMBRE_DIA-old.tar
tar cvf $DESTINO/$NOMBRE_DIA.tar $DIRECTORIOS_BACKUP
#gzip $DESTINO/$NOMBRE_DIA.tar
echo "El fichero ocupa :"`du -sh $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Se ha realizado backup de los directorios:"$DIRECTORIOS_BACKUP >> $REPORTE
echo "La suma MD5 del fichero es:"`md5sum $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Esta cifra puede ayudarle a comprobar coherencias en caso de restaurar la copia." >> $REPORTE
if [ -f $DESTINO/$NOMBRE_DIA-old.tar ]; then
echo "El fichero de la semana anterior existe.Parece que todo esta en orden." >> $REPORTE
else
echo "El fichero de la semana anterior no existe." >> $REPORTE
echo "Es probable que todavia no se haya cumplido el ciclo de rotaciones de backups." >> $REPORTE
echo "Si continua recibiendo este mensaje.Contacte con el Administrador." >> $REPORTE
fi
echo "Backup finalizado a las: "`date |awk '{ print $4 }'` >> $REPORTE

;;
0)
echo "Hoy es Domingo.Se han añadido directorios adicionales a la copia de seguridad." >> $REPORTE
echo "Son los siguientes :"$DIRECTORIOS_ADICIONALES >> $REPORTE
echo "Backup iniciado a las: "`date |awk '{ print $4 }'` >> $REPORTE
rm -rf $DESTINO/$NOMBRE_DIA-old.tar
sleep 2
mv $DESTINO/$NOMBRE_DIA.tar $DESTINO/$NOMBRE_DIA-old.tar
sleep 2
tar cvf $DESTINO/$NOMBRE_DIA.tar $DIRECTORIOS_BACKUP $DIRECTORIOS_ADICIONALES
#gzip $DESTINO/$NOMBRE_DIA.tar
echo "El fichero ocupa :"`du -sh $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Se ha realizado backup de los directorios:"$DIRECTORIOS_BACKUP >> $REPORTE
echo "La suma MD5 del fichero es:"`md5sum $DESTINO/$NOMBRE_DIA.tar|awk '{ print $1 }'` >> $REPORTE
echo "Esta cifra puede ayudarle a comprobar coherencias en caso de restaurar la copia." >> $REPORTE
if [ -f $DESTINO/$NOMBRE_DIA-old.tar ]; then
echo "El fichero de la semana anterior existe.Parece que todo esta en orden." >> $REPORTE
else
echo "El fichero de la semana anterior no existe." >> $REPORTE
echo "Es probable que todavia no se haya cumplido el ciclo de rotaciones de backups." >> $REPORTE
echo "Si continua leyendo este mensaje.Contacte con el Administrador." >> $REPORTE

fi
echo "Backup finalizado a las: "`date |awk '{ print $4 }'` >> $REPORTE

;;

esac
echo "-----------------------------" >> $REPORTE
echo "SysAdmin - Alberto Permuy Leal" >> $REPORTE
echo "Contact :" >> $REPORTE
echo "Email: email at dominio com" >> $REPORTE
echo "Mobile: +0034 666 666 66 " >> $REPORTE
echo "-----------------------------" >> $REPORTE
mail -s $ASUNTO $DESTINATARIO < $REPORTE