viernes, 23 de diciembre de 2011

el repo con la cache

En mi país, las conexiones son un poco lentas. Aveces conseguir los repos se vuelven MUY difícil. Una alternativa que me resuelve mucho es convertir la cache en un repositorio local. Así puedo dársela a mis amigos luego y que ellos lo usen como repo.

Un script sencillo para estos sería así:

#!/bin/sh
# crea el directorio local
mkdir -p /usr/local/var/repo/
cd /usr/local/var/
# refresca el fichero Packages.gz
touch /usr/local/var/repo/Packages.gz
rm /usr/local/var/repo/Packages.gz
# mueve la cache al repo
mv /var/cache/apt/archives/*.deb /usr/local/var/repo/
# genera la lista de paquetes
dpkg-scanpackages repo/ /dev/null | gzip > repo/Packages.gz
# crea la entrada en APT
echo "deb file:/usr/local/var/ repo/" > /etc/apt/sources.list.d/lazaro.list


Con eso tenemos un repo, aptitude update y tendremos el repo local funcionado. A los amigos le copiamos el repo en /usr/local/var/repo/ y le ponemos en el source.list la linea:
deb copy:/usr/local/var/ repo/
Entonces ya podemos tener la amabilidad de proveerle los paquetes a los colegas sin acceso a Internet.

miércoles, 21 de diciembre de 2011

ver solo nuevos

Con Mutt: Aveces cuando estamos leyendo muchos correos, sobre todo de las listas. Nos encontramos que distinguir los nuevos en correos en un hilo, puede llegar a ser un poco tedioso. Aveces los nuevos correos se mezclan en hilos que quedaron atrás. En otros clientes de correo tenemos la opción de "mostrar solo los sin leer". En mutt podemos hacer algo por el estilo. Creamos un macro que diga:
macro index     n      "l(~N|~O)\n"

Con eso, solo se mostrarán solo los mensajes sin leer. Podemos jugar con esos parámetros y crear una gama de  opciones bien amplia.  Por ejemplo con esto:
macro index     y      "l~d<2d ~d>1d\n"
Mostraremos solamente los mensajes de ayer. Se puede crear ganchos, por ejemplo, para que en las carpetas de lista se muestren solo los nuevos. Al final lo deje así.
macro index n "l(~N|~O)\n"
macro index y "l~d<2d ~d>1d\n"
macro index , "l~A\n"
folder-hook lista "push n"
folder-hook . "push ,"
Donde "n" muestra los nuevos y sin leer. La "y" los de ayer y la "," muestra todo de nuevo y al entrar en la carpeta "lista" veremos solo los nuevos.

lunes, 19 de diciembre de 2011

sarg en debian 6

Sarg, es una herramienta especializada en analizar los log de squid. No usa bases de datos y lo único que hace es generar unos HTML estáticos con el reporte detallado de la navegación. En debian todo es muy fácil.

aptitude install sarg

y editamos su fichero de configuración, es muy probable que este junto a squid.

mc -e  /etc/squid/sarg.conf

Ahi le editamos los parametros y le ponemos el idioma que sea de su agrado. Como no hay finlandés lo pongo en español :-D. Localizen las cadena "language" y vera todas las opciones disponibles.

language Spanish

Si lo desea y es un malvado adminitrador de red, puede asegurarlo con un .httacces. Otra linea últil es una que esta llegando a la linea 140. Esta dice donde saldrán los reportes.

output_dir /var/www/squid-reports

En este caso el valor esta en www pero yo opte por hacerle un virtualhost en otro lugar. Ahi usted puede, si lo desea cambiar el directorio de salida del HTML con el reporte.

No se embulle en mirar configuraciones y cambiarlas a lo loco, sarg es un softweare caprichoso y una configuración aparentemente normal, puede generar un treintena de errores que no indican ni remotamente a la configuración realizada, como por ejemplo, "Error: fichero truncado" Otra que si es segura modificar, es la fecha, cerca de linea 195.

date_format e

Donde e es el formato Europeo, dd/mm/yy, el mas similar al que aprendimos en la escuela. Por ultimo, una observación del fichero /etc/squid/sarg.users Ahí podemos poner nuestro usuario, todo los usuarios ahí, NO saldrán en el reporte. Mi usuario, es el que uso para descargar los antivirus y siempre acabo siendo el peor y mas inconsciente en cuanto a descargas.

De la misma forma hay un sarg.hosts que controla los sitios o host ignorados. Por ejemplo, yimg.com para no tener que ver las imágenes del yahoo! en el reporte.

Por ultimo ya estamos listos, sarg se ejecutara de una manera muy discreta durante un rato laaaaaargo. Al cabo del rato, terminara de ejecutarse, aparentemente no hizo nada, pues alégrese, el solo muestra los errores; MUY ÚTIL para el cron. Valla al directorio de la variable output_dir o a su vhost con una navegador.


Nota:

Si lo desea generar una tarea de cron que corra sarg y luego corra: "sarg -e direccion@dominio.tld" para crear un reporte por correo. Cuando mire el pertinente reporte vera que solo genero el reporte de este mes o
de este dia, segun lo tenga el fichero /var/log/squid/access.log yo roto los logs semanales. En caso de que usted tenga esta buena costumbre, le recomiendo que la primera vez corra sarg de una manera especial.

Valla al fichero de configuracion y localize la variable "access_log" esta cerca de la linea 35. Ahí configure TEMPORALMENTE un fichero.

access_log /tmp/reporte.log

Ahora, crearemos un concenso de todo el logueo. En mi caso yo roto los logs en el mismo directorio, asique tengo algo así.

ls /var/log/squid/
access.log.1 access.log.2 access.log.3 access.log.4
access.log.5 access.log.6 access.log.7 access.log.8

Entonces lo juntamos todo.

cat /var/log/squid/access.* > /tmp/reporte.log

Valla por un cafe y demorece segun el tamanho de los logs. Cuando vuelva, si ya a terminado la tarea, corra sarg con esa "configuración especial". Al terminar, vera que se genero un reporte bien completo. Le recomiendo que corra sarg a la hora de almuerzo, preferiblemtne antes de almorzar. Para aprovechar el tiempo. Si hay pescado, mejor tadovaia, asi se demora mas. Una vez con la barriga llena, probablemente ya sarg halla terminado. Valla a la configuracion y restablezca la linea a la normalidad.

access_log /var/log/squid/access.log

Entonces, valla al reporte y vea si es de su argado. Ya solo le faltaría programar el cron. Yo roto los logs una vez a la semana pero emito un reporte diario con sarg, uno para los html y otro el martes y el jueves con sarg -e por correo.