miércoles, 15 de abril de 2009
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:
Para este tipo de cosas prefiero iptraf...
Ejemplo: Monitorizar las conexiones tcp:
[root@localhost] watch -n 1 "netstat -tpanl | grep ESTABLISHED"
Para este tipo de cosas prefiero iptraf...
Etiquetas:
sysadmin
martes, 14 de abril de 2009
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
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
Etiquetas:
webserver
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.
#!/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
Etiquetas:
sysadmin
Suscribirse a:
Entradas (Atom)