sábado, octubre 25, 2014

Como borrar la cola de exim cuando tiene muchos emails

En el último tiempo estoy 'jugando' con un servidor con cpanel y muchas cuentas de email. Hay algunos dominios que tienen usuarios que envían spam (dentro de los límites de envío de cada servidor).


Estoy realizando la migración de cuentas de cpanel 11.32 a 11.44, de una máquina física a una máquina virtual con mejores prestaciones.



La cola de exim siempre da problemas, principalmente porque es complicado y poco claro que parámetros impactarán directamente en el performance del servidor de email, el tamaño de la cola de mensajes, entre otros.



Usando exim tuve el siguiente problema: cientos de miles de mensajes estaban en la cola y esto ocurrió dado el siguiente escenario:



1) Migré un dominio con algunas cientos de cuentas de email, algunas que envían spam. (Eso lo voy a arreglar en el siguiente paso del proyecto).

2) En el periodo en que migré del servidor origen al servidor destino (al parecer) una de las cuentas llego a un peak de envío de spam.
3) Mientras los registros DNS actualizaba las IPs del dominio migrado, miles de emails rebotaron hacia la cuenta del spammer (unos 280.000).


4) Dado el tamaño de la cola al intentar usar el comando exigrep (con parámetros -x o -z) no retornaba, al menos no en un tiempo razonable, esperé a lo menos 15 minutos sin resultados.



Lo que necesitaba hacer era borrar por lo menos los mensajes congelados (frozen), para esto es necesario listar los ids de los emails, lo que quería hacer era:


Borrar mensajes congelados desde la cola de exim
  exiqgrep -z -i| xargs -t -n1 exim -Mrm 
Pero como dije antes, dada la gran cantidad de mensajes, no retornó dentro de un tiempo razonable. Al parecer exiqgrep hace una búsqueda secuencial en todos los mensajes. La alternativa que encontré fue usar el siguiente comando, al parecer exim despliega la información de cada email a medida que lo va encontrando. Borrar mensajes congelados de la cola.
exim -bp |grep 1X |grep frozen | awk '{ print $3 }' |xargs -t -n1 exim -Mrm
El primer comando exim -bp  retorna todos los emails de la cola, con varios atributos, pero nos interesa filtrar el id del mensaje. Esto realiza grep 1X, dado que todos los ids de mensajes comienzan con 1X (podría ser diferente eventualmente), lueg con grep frozen filtras los mensajes congelados, en seguida, con  awk '{ print $3 }' obtienes la tercera columna, que es el id del mensaje, el cual pasaremos como parámetro al siguiente comando: xargs -t -n1 exim -Mr, lo que hace es decir que el comando que ejecutará xargs, recibirá un parametro (opción -n1) y luego exim -Mr borra al mensaje 


Salida del comando


En mi caso, eran alrededor de 150.000 mensajes congelados en la cola y demoró un par de horas en borrarlos todos.  Puedes reducir el tiempo que esto toma si ejecutas varios procesos paralelos, no hay problema con la concurrencia, porque exim hace lock de cada mensaje cuando está procesándolo.

Ejecutar el comando en segundo plano (redireccionar la salida estándar a /dev/null, si no tu terminal va quedar inutilizable)
  exim -bp |grep 1X |grep frozen | awk '{ print $3 }' |xargs -t -n1 exim -Mr  > /dev/null 2>&1

La cantidad de procesos simultáneos que puedes ejecutar va a depender de la capacidad de tu sistema, especialmente de I/O del disco duro. 


Adicionalmente, si quieres enviar los mensajes que están en la cola pero que no están congelados (estado queued), debes usar el siguiente comando:
exim -bp |grep 1X  |awk '{ print $3 }' |xargs -t -n1 exim -M


















viernes, agosto 15, 2014

Problemas con Samsung Galaxy S2 i777





English: The Sprint version of Samsung's Galax...

Si por esas casualidades de la vida, tienes un celular Samsung Galaxy S2, de AT&T (SGH-i777) y experimentas problemas al cargar el telefóno, principalmente que este se apaga o resetea al conectar el cargador, se debe a que la batería que estás usando no es la original (esta batería tiene el código EB-L1A2GBA, el cual puedes verificar en la parte inferior) y apuesto este blog a que estás usando la del otro Galaxy S2 (i9100), esa batería tiene el código EB-F1A2GBU



Para resolver este problema sólo debes actualizar el kernel de tu telefóno, no es necesario cambiar la rom ni hacer ningún otro malabar.

Ahora, primero tienes que bajar el siguiente archivo Siyah-v3.4.2-nomswap-I777.tar


Luego, usando odin y poniendo tú telefóno en modo Download lo conseguirás. (Hay muchas guías de como lograrlo)



sábado, mayo 10, 2014

How to hack Tinder to get more out of it

If you're an enthusiastic user of Tinder application, you might consider these to hacks that improve the number of girls you get to meet.

1. Fishing strategy:
It basically works like this, instead of looking the pictures and decide if you like the girl or not, just swipe right all of them and then select the ones that liked you, block the rest.

How to do it :
Install Auto focus (you need root access)
Once you have the application installed you need to create a script. To do this just click on the plus button, this app usually works very slow while loading the recorded scripts.

Record the script
- Press plus button on the left bottom corner.
- Load Tinder.
- Press volume down key.
- Click on Tinder's green heart.
- Stop the recording pressing volume down key.

Execute the script
- Long press on the script name.
- A pop up will appear, set a number of times it will execute, I usually put 999,999. Don't be scared, it won't run forever, I don't know the reason but it always stop before reaching the number.
- Load Tinder and press the volume down key.
You will start getting lots of matches, then you just pick the ones you like the most. I usually get 20 to 50 matches per day.


2. Changing your location:

This is particularly useful if you are traveling and you want to meet local girls, this way you can anticipate yourself and make plans (arrange a date) by the time you get to the target city.
- Install Fake GPS
- Change location access (Settings > Location access) to GPS only.
Set the location to the place you want on the app.
Restart Tinder until you get the location set correctly. (most of the time it takes me three times).