Color Transparente con GIMP


Muchas veces necesitamos hacer transparente el fondo de una imágen sólida o tal vez un objeto mas complicado como un firma.
Para transparentar el fondo de una imágen o alguna parte delimitada por un contorno bien definido, podemos hacerlo facilmente, con el GIMP de la siguiente manera:

1) Hacemos click con el botón derecho del mouse sobre la imágen:
Capa –> Transparencia –> “Añadir Canal Alfa”
2) Seleccionamos un área de la imágen a transparentar con la herramienta “Selección Difusa” que selecciona un área contínua de la imágen basandose en el color.
3) Utilizamos la goma de borrar para borrar toda el área sin preocuparnos de los contornos. Al borrar veremos que el color de fondo se reemplaza por cuadrados en tonos de gris. Esa es la transparencia.

Luego guardamos la imágen en formato png o gif que soportan colores transparentes.

Tal vez, para la gente que trabaja en gráfica esto puede sonar muy obvio, pero para mi fué toda una odisea !!!!

Restaurar Menu de Aplicaciones y System Tray en GNOME


Si en algún momento les pasa que pierden la barra de programas del GNOME completa, pueden agregarla nuevamente de la siguiente manera:

Sobre la barra inferior  de programas hacemos click con el boton derecho del mouse -> “New  Panel” esto agregará la barra de menú en la parte superior del escritorio.
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Menu Bar (A custom menu bar)
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Notification Area
En esta nueva barra, nuevamente click con el boton derecho del mouse -> Add to Panel -> Clock

Con esto la barra ha quedado igual a la original en cualquier instalación de Fedora.

Creando RAID 1 por software


En un par de discos nuevos en un servidor vamos a crear un
RAID 1 (espejo) para tener algo de tolerancia a fallos:

Identificamos los discos/dispositivos a utilizar:
/dev/sdc
/dev/hdc

En uno de los discos debemos crear la particion:

Creamos partición de tipo raid en la totalidad del disco:
#fdisk /dev/sdc
new partition: n
primary partition: p
particion number: 1
First cylinder: 1
Last cylinder: (last)

Change partition type: t
Hex code: fd (Linux raid autodetect)

grabamos cambios y salimos: w

Creamos el dispositivo RAID:
# mdadm –create –level=1 –raid-devices=2 /dev/md1 /dev/sdc /dev/hdc

Podemos monitorear el proceso de espejado de los discos con:
# cat /proc/mdstat

o

# mdadm –detail /dev/md1

Formateamos file system ext3:
#mkfs.ext3 /dev/md1

Armamos el montaje del raid:
Creamos el directorio de montaje:
# mkdir /data

Editamos el /etc/fstab y agregamos el punto de montaje:
/dev/md1                /data                   ext3    defaults        1 1

Releemos el fstab para verificar y montar de acuerdo a la nueva entrada:
# mount -a

Creamos la entrada en el /etc/mdadm.conf para definir el nuevo raid:
# mdadm –examine –scan  >> /etc/mdadm.conf

Script de notificación de uso de quota de disco / Disk Quota Notification Script


Estuve un rato buscando si alguien se había tomado el trabajito de armar un script para enviar un mail a los usuarios cuando estos estuvieran superando la quota de disco (al menos la SOFT quota) pero no econtré nada similar, así que no me quedó otra que hacerlo… Aquí dejo mi aporte para los que lo necesiten:

Lo que hace es recorrer los usuarios existentes en el /etc/passwd con UID >= 500. Esto es para Linux CentOS, Fedora, Redhat, pero pueden modificarlo para otros linuxes.
Para cada uno de ellos utiliza el comando repquota y compara los campos soft y hard para calcular el espacio utilizado.
En base a esto envía un mail de notificación al usuario y otro a sistemas para que nos enteremos que determinado usuario tiene problemas de quota.

#!/bin/sh
#hvivani. 20101217
#verifica quotas de usuario en filesystem y envía mail notificando exceso de soft quota.

for name in $(awk -F: ‘($3>=500) && ($3!=65534) {print $1}’ /etc/passwd)
do
      limiteSoft=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $4}’`
      usado=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $3}’`
      limiteHard=`/usr/sbin/repquota /  |grep “$name ” |awk ‘($3>$4) && ($4!=0) {print $5}’`

      ### si el limite soft no es nulo
      if [ -n “$limiteSoft” ]
      then
         ### si el limite soft supera el espacio utilizado
         if [ “$usado” -ge “$limiteSoft” ]
         then
            nota=”Usuario: $name, Ud. esta excediendo su espacio en disco: Limite: $limiteSoft Bytes. Utilizado: $usado Bytes. Por favor, libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “ATENCION: Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado SOFT quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
         ### si el limite hard supera el espacio utilizado
         if [ “$usado” -ge “$limiteHard” ]
         then
            nota=”Usuario $name, Ud, esta excediendo su espacio en disco: Limite: $limiteHard Bytes. Utilizado: $usado Bytes. No podrá escribir en su sistema hasta que libere espacio en su carpeta personal o sistema de correo.”
            echo $nota | mail -s “Uso de Disco !!” $name@dominio.com.ar
            echo “El usuario $name ha superado HARD quota. Limite: $limiteSoft Bytes. Utilizado: $usado Bytes.” | mail -s “ATENCION: Uso de Disco $name !!” sistemas@dominio.com.ar
         fi
      fi

done

smokeping-2.4.1 Installation Notes


smokeping-2.4.1 Installation NotesOn publictest8.fedoraproject.org (2.6.18-194.8.1.el5xen)Ticket #2510

1) We need to install the following packets:# yum install rrdtool# yum install fping# yum install echoping# yum install curl# yum install perl perl-Net-Telnet perl-Net-DNS perl-LDAP perl-libwww-perl perl-RadiusPerl perl-IO-Socket-SSL perl-Socket6 perl-CGI-SpeedyCGI

I suposed installed httpd.

2) We download smokeping and set to its working directory:# wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.4.1.tar.gz# tar zxvf smokeping-2.4.1.tar.gz# mv smokeping-2.4.1 /opt/smokeping

3) We need to rename some files to its working name:# mv /opt/smokeping/bin/smokeping.dist /opt/smokeping/bin/smokeping# mv /opt/smokeping/htdocs/smokeping.cgi.dist /opt/smokeping/htdocs/smokeping.cgi# mv /opt/smokeping/htdocs/tr.cgi.dist /opt/smokeping/htdocs/tr.cgi# mv /opt/smokeping/etc/config.dist /opt/smokeping/etc/config# mv /opt/smokeping/etc/basepage.html.dist /opt/smokeping/etc/basepage.html# mv /opt/smokeping/etc/smokemail.dist /opt/smokeping/etc/smokemail# mv /opt/smokeping/etc/tmail.dist /opt/smokeping/etc/tmail# mv /opt/smokeping/etc/smokeping_secrets.dist /opt/smokeping/etc/smokeping_secrets# chmod 600 /opt/smokeping/etc/smokeping_secrets

4) We need to modify this file:# vi /opt/smokeping/bin/smokepingand replace the firsts 9 lines with this values: #!/usr/bin/perl -w # -*-perl-*-

use lib qw(/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/RRDs/); use lib qw(/opt/smokeping/lib);

use Smokeping 2.004000;

Smokeping::main(“/opt/smokeping/etc/config”);

5) We need to modify this file:# vi /opt/smokeping/htdocs/smokeping.cgiand replace the firsts 10 lines with this values: #!/usr/bin/speedy -w # -*-perl-*-

use lib qw(/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/RRDs); use lib qw(/opt/smokeping/lib); use CGI::Carp qw(fatalsToBrowser);

use Smokeping 2.004000;

Smokeping::cgi(“/opt/smokeping/etc/config”);

6) We need to modify this file:# vi /opt/smokeping/htdocs/tr.cgiand replace the firsts 4 lines with this values: #!/usr/bin/speedy -w use strict; use lib qw(/opt/smokeping/lib); use lib qw(perl);

7) We need to prepare the http directory:# mkdir -p /var/www/html/smokeping/img /var/www/html/smokeping/script/ /opt/smokeping/data /opt/smokeping/var# chown -R apache:apache /var/www/html/smokeping/img

# ln -s /opt/smokeping/htdocs/cropper /var/www/html/smokeping/cropper# ln -s /opt/smokeping/htdocs/resource /var/www/html/smokeping/resource# ln -s /opt/smokeping/htdocs/script/Tr.js /var/www/html/smokeping/script/Tr.js# ln -s /opt/smokeping/htdocs/smokeping.cgi /var/www/html/smokeping/smokeping.cgi# ln -s /opt/smokeping/htdocs/tr.cgi /var/www/html/smokeping/tr.cgi# ln -s /opt/smokeping/htdocs/img /var/www/html/smokeping/img

uncomment the following line at /etc/httpd/conf/httpd.conf:AddHandler cgi-script .cgi

8 ) We need to create this file with this content:# vi /etc/httpd/conf.d/smokeping.conf Alias /smokeping/ /opt/smokeping/htdocs/

DirectoryIndex index.php index.cgi smokeping.cgi Options Indexes FollowSymLinks ExecCGI MultiViews AllowOverride all

9) We modify the configuration file with content like this: *** General ***

owner    = hvivani contact  = hernan@vivani.com.ar mailhost = localhost sendmail = /usr/sbin/sendmail # NOTE: do not put the Image Cache below cgi-bin # since all files under cgi-bin will be executed … this is not # good for images. imgcache = /var/www/html/smokeping/img imgurl   = http://publictest8.fedoraproject.org/smokeping/img datadir = /opt/smokeping/data piddir  = /opt/smokeping/var cgiurl   = http://publictest8.fedoraproject.org/smokeping/smokeping.cgi smokemail = /opt/smokeping/etc/smokemail tmail = /opt/smokeping/etc/tmail # specify this to get syslog logging syslogfacility = local0 # each probe is now run in its own process # disable this to revert to the old behaviour # concurrentprobes = no

*** Alerts *** to = hernan@vivani.com.ar from = smokealert@publictest8.fedoraproject.org

+someloss type = loss # in percent pattern = >0%,*12*,>0%,*12*,>0% comment = loss 3 times  in a row

*** Database ***

step     = 300 pings    = 20

# consfn mrhb steps total

AVERAGE  0.5   1  1008 AVERAGE  0.5  12  4320     MIN  0.5  12  4320     MAX  0.5  12  4320 AVERAGE  0.5 144   720     MAX  0.5 144   720     MIN  0.5 144   720

*** Presentation ***

template = /opt/smokeping/etc/basepage.html

+ charts

menu = Charts title = The most interesting destinations

++ stddev sorter = StdDev(entries=>4) title = Top Standard Deviation menu = Std Deviation format = Standard Deviation %f

++ max sorter = Max(entries=>5) title = Top Max Roundtrip Time menu = by Max format = Max Roundtrip Time %f seconds

++ loss sorter = Loss(entries=>5) title = Top Packet Loss menu = Loss format = Packets Lost %f

++ median sorter = Median(entries=>5) title = Top Median Roundtrip Time menu = by Median format = Median RTT %f seconds

+ overview

width = 600 height = 50 range = 10h

+ detail

width = 600 height = 200 unison_tolerance = 2

“Last 3 Hours”    3h “Last 30 Hours”   30h “Last 10 Days”    10d “Last 400 Days”   400d

#+ hierarchies #++ owner #title = Host Owner #++ location #title = Location

*** Probes ***

+ FPing

binary = /usr/sbin/fping

*** Slaves *** secrets=/opt/smokeping/etc/smokeping_secrets #+boomer #display_name=boomer #color=0000ff #+slave2

*** Targets ***

probe = FPing

menu = Top title = Network Latency Grapher remark = Welcome to the SmokePing website of Fedora Project.    Here you will learn all about the latency of our network.

+ Test menu= Targets title = Ping Targets #parents = owner:/Test/James location:/

++ publictest8

menu = publictest8 title = publictest8 #alerts = someloss #slaves = boomer slave2 host = publictest8.fedoraproject.org

++ bodhost01

menu = bodhost01 title = bodhost01 #alerts = someloss host = bodhost01.fedoraproject.org

++ ibiblio01

menu = ibiblio01 title = ibiblio01 #alerts = someloss host = ibiblio01.fedoraproject.org

++ internetx01

menu = internetx01 title = internetx01 #alerts = someloss host = internetx01.fedoraproject.org

++ osuosl01

menu = osuosl01 title = osuosl01 #alerts = someloss host = osuosl01.fedoraproject.org

++ serverbeach01

menu = serverbeach01 title = serverbeach01 #alerts = someloss host = serverbeach01.fedoraproject.org

++ serverbeach02

menu = serverbeach02 title = serverbeach02 #alerts = someloss host = serverbeach02.fedoraproject.org

++ serverbeach03

menu = serverbeach03 title = serverbeach03 #alerts = someloss host = serverbeach03.fedoraproject.org

++ serverbeach04

menu = serverbeach04 title = serverbeach04 #alerts = someloss host = serverbeach04.fedoraproject.org

++ serverbeach05

menu = serverbeach05 title = serverbeach05 #alerts = someloss host = serverbeach05.fedoraproject.org

++ telia01

menu = telia01 title = telia01 #alerts = someloss host = telia01.fedoraproject.org

++ tummy01

menu = tummy01 title = tummy01 #alerts = someloss host = tummy01.fedoraproject.org

++ download05

menu = download05 title = download05 #alerts = someloss host = download05.fedoraproject.org

++ people01

menu = people01 title = people01 #alerts = someloss host = people01.fedoraproject.org

#++ MultiHost

#menu = Multihost #title = James and James as seen from Boomer #host = /Test/James /Test/James~boomer

10) Now we star smokeping and httpd:# /opt/smokeping/bin/smokeping# /sbin/service httpd start

11) You can view it working at: publictest8.fedoraproject.org/smokeping/

Ticket #2510

Home’s Centralizados / Configuring Centralized Home Directories


El uso de los home de usuarios centralizados nos da muchisima flexibilidad de administración. A tal punto que los usuarios pueden conectarse y ver sus archivos casi desde cualquier equipo.

En el servidor:
Debemos instalar el nfs:
# yum install nfs-utils

Además debemos tener configurada y habilitada la autenticación de usuarios con NIS o LDAP. Esta configuración ya la describimos en:
https://hvivani.wordpress.com/2010/12/06/autenticacion-de-usuarios-con-ldap-con-ssltsl-instalar-y-configurar-servidor-y-clientes-ldap/
y en:
https://hvivani.wordpress.com/2010/12/06/autenticacion-de-usuarios-con-nis-instalar-y-configurar-servidor-y-clientes-nis/

En el /etc/exports exportamos el /home completo agregando esta linea:
/home           192.168.1.0/255.255.255.0(rw,sync)

Starteamos el servicio y lo configuramos para el arranque automatico:
# service nfs start
# chkconfig –level 2345 nfs on

Verificamos que el directorio exportado sea visible desde los equipos clientes. En cualquiera de ellos hacemos un:
# showmount -e ServidorNFS

Configuración del Firewall en el Servidor NFS:
Si usamos iptables, deberemos abrir el puerto 2049 tcp/udp a fin de acceder a los directorios exportados desde los clientes.
Además, debemos establecer algunos puertos adicionales que normalmente se abren dinámicamente para que se abran de manera estática y poder definirlos en el firewall.
En el archivo /etc/sysconfig/nfs habilitamos las siguientes líneas:
RQUOTAD_PORT=875
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
STATD_OUTGOING_PORT=2020

Si hacemos un:
# rpcinfo -p ServidorNFS
deberíamos ver algo asi:
   program vers proto   port  service
100000    2   tcp    111  portmapper
100000    2   udp    111  portmapper
100024    1   udp    662  status
100024    1   tcp    662  status
100004    2   udp    834  ypserv
100004    1   udp    834  ypserv
100004    2   tcp    834  ypserv
100004    1   tcp    834  ypserv
600100069    1   udp    835  fypxfrd
600100069    1   tcp    835  fypxfrd
100011    1   udp    875  rquotad
100011    2   udp    875  rquotad
100011    1   tcp    875  rquotad
100011    2   tcp    875  rquotad
100003    2   udp   2049  nfs
100003    3   udp   2049  nfs
100003    4   udp   2049  nfs
100021    1   udp  48320  nlockmgr
100021    3   udp  48320  nlockmgr
100021    4   udp  48320  nlockmgr
100021    1   tcp  32803  nlockmgr
100021    3   tcp  32803  nlockmgr
100021    4   tcp  32803  nlockmgr
100003    2   tcp   2049  nfs
100003    3   tcp   2049  nfs
100003    4   tcp   2049  nfs
100005    1   udp    897  mountd
100005    1   tcp    897  mountd
100005    2   udp    897  mountd
100005    2   tcp    897  mountd
100005    3   udp    897  mountd
100005    3   tcp    897  mountd
100009    1   udp    617  yppasswdd

Aquí podemos ver que puertos tiene abiertos cada servicio y si es tcp o udp.
Con esta info, configuramos el firewall (iptables) para abrir estos puertos:
897 tcp/udp, 875 tcp/udp, 662 tcp/udp, etc.

Configuración del cliente:

Por un lado debemos tener habilitada la autenticación por NIS o LDAP, como deciamos al principio, por lo tanto, supongo que configuré (por ejemplo) la autenticación por NIS a través del system-config-authentication estableciendo el dominio NIS y la IP del serividor NIS.

Debemos hacer un rsync de los archivos contenidos en el home del usuario en la maquina cliente para llevarlos al servidor:
# rsync -vah –exclude=”.gvfs” /home/usuario/ usuario@ServidorNFS:/home/usuario/

Instalamos los siguientes paquetes:
# yum install autofs ypbind rpcbind nfs-utils

Renombramos el /home a /home.bak
# mv /home /home.bak

En caso de que el home esté montado en una partición específica en el fstab, comentamos la línea con un #.
Creamos un nuevo home:
# mkdir /home

en el /etc/auto.master agregamos la siguiente linea:
/home   /etc/auto.home

creamos un archivo /etc/auto.home con la siguiente linea:
*  -fstype=nfs,rw,soft,nosuid  ServidorNFS:/home/&

reiniciamos el equipo cliente, ingresamos como root, y hacemos un:
# su – usuario
de algún usuario conocido. Esto debería dejarnos parados en el home remoto del usuario.
Si esto funciona bien, ya podemos reiniciar e ingresar con cualquier usuario del servidor y va a automontarnos el home en el equipo local.

Una consideración importante: En el equipo cliente no deben existir usuarios comunes. Solo root.

scripts: qmail usage statistics


Aquí varios scripts utilizados para analizar el uso del servidor de correo qmail. Se pueden utilizar independientemente o el primero llamará al resto:

[root@test scripts]# cat chkStatus.sh 
#!/bin/bash
echo ""
echo ""
echo "Consultas de estado. Servidor Qmail"
echo "==================================="
echo ""
echo "TCP Server Hits:"
/root/scripts/chkTcpServerHits.sh $1|cut -c12-50
echo "RBL Hits:"
/root/scripts/chkRblHits.sh $1|cut -c12-50
echo "SPAM Hits:"
/root/scripts/chkSpamHits.sh $1|cut -c13-50
echo "Spam Deleted: "
/root/scripts/chkSpamHitsDeleted.sh $1|cut -c13-50
echo "Virus Hits:"
/root/scripts/chkVirusHits.sh $1|cut -c13-50
echo "Qtrap Hits:"
/root/scripts/chkQtrapHits.sh $1|cut -c12-50
echo "Failure:"
/root/scripts/chkFailure.sh $1|cut -c12-50
echo "Pop3 Hits:"
/root/scripts/chkPopHits.sh $1|cut -c12-50
echo "Send Local:"
/root/scripts/chkSendLocal.sh $1|cut -c12-50
echo "Send Remote:"
/root/scripts/chkSendRemote.sh $1|cut -c12-50
echo ""
echo "Estado de las colas: "
qmailctl queue
echo ""
echo "Uptime: "
uptime
echo ""

[root@test scripts]# cat chkTcpServerHits.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-smtpd/*|grep "tcpserver: pid"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkRblHits.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de rblsmtpd de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-smtpd/*|grep "rblsmtpd:"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkSpamHits.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de SPAM de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "smells like SPAM"|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit

[root@einstein scripts]# cat chkSpamHitsDeleted.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de SPAM eliminado de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "deleting message..."|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkVirusHits.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de virus de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%c --date=$1|cut -c5-15`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco para determinar la cantidad de lineas que lo contienen
cat /var/spool/qscan/qmail-queue.log|grep "there be a virus"|cut -c6-16| \
# busco la fecha
grep "$fecha" | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkQtrapHits.sh 
#!/bin/bash
# 20070418-hvivani-Obtiene total dets del qtrap  de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
fechaQtrap=`date +%m/%d/%y --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco en los logs para determinar la cantidad de lineas que lo contienen
cat /home/vpopmail/qtrap/logs/qtrap.log|grep "$fechaQtrap"|wc -l
# end
exit

[root@test scripts]# cat chkFailure.sh 
#!/bin/bash
# 20070418-hvivani-Obtiene total de failure de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep "failure: "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkPopHits.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de tcpserver: pid de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-pop3d/*|grep "tcpserver: pid"| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkSendLocal.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de entregas locales de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep "to local "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit

[root@test scripts]# cat chkSendRemote.sh 
#!/bin/bash
# 20070417-hvivani-Obtiene total de entregas remotas de los logs de qmail para una fecha pasada por linea de comandos.
fecha=`date +%Y-%m-%d --date=$1`
# imprimo fecha. Puede cambiarse para otros dias
echo $fecha | \
# coloco una coma
awk '{printf $0","}' \
# busco "rblsmtpd" en los logs para determinar la cantidad de lineas que lo contienen
cat /var/log/qmail/qmail-send/*|grep  "to remote "| \
# convert Time Atomic International timestamp to normal human readable format <-- motherfucker yeahhh!!!
/usr/local/bin/tai64nlocal | \
# busco el human readable timestamp para todas las instancias de la fecha
grep $fecha | \
# cuento numero de lineas
wc -l
# end
exit