Postgresql Conocer el tamaño de la DB y el total

August 22nd, 2014
SELECT pg_database.datname, pg_database_size(pg_database.datname), pg_size_pretty(pg_database_size(pg_database.datname)) FROM pg_database ORDER BY pg_database_size DESC;

SELECT pg_size_pretty(sum(pg_database_size(pg_database.datname))::bigint) FROM pg_database;

A buen entendedor pocas palabras 😉

Resetear el password de chamilo

May 8th, 2013

Me extrañó lo poco documentado que está esto, y lo sencillo que es. Pero bueno este post les evitará browsear en el código. Hay 3 posibilidades:

Texto plano)
update user set password = ‘051195’ where user_id =1;
MD5)
update user set password = md5(‘051195’) where user_id =1;
Sha1) Obvio que está era la mía
update user set password = sha1(‘051195’) where user_id =1;

Muy sencillo. Saludos a todos.

Google storage

April 10th, 2013

Hola a todos, nos estabamos quedando sin espacio de disco para una empresa editorial para la que trabajo, y buscando algún servicio de almacenamiento di con GoogleStorage, realmente es muy barato y nos deja almacenar todo lo que querramos. Una vez que instalamos la aplicación sólo tenemos que crear la nueva carpeta:

gsutil mb gs://nuevacarpeta

y subir los archivos:

gsutil cp -R -n -c * gs://nuevacarpeta/

A mi me sirvió para dejar nuestros discos a un 90% de su capacidad retirando proyectos que ya no necesitaremos. Espero les sirva a ustedes, yo lo recomiendo.

Saludos

Reducir tamaño de mp4

April 10th, 2013

Hola gente linda, acá les dejo un comandito que usé para reducir el tamaño de unos archivos mp4, espero les sirva saludos.

for i in $(ls -1 ../Batch1/* | cut -d “/” -f 3); do
ffmpeg -i ../Batch1/$i -s 352×272 -ab 128k -strict -2 $i;
done;

Balance de carga entre servicios

February 21st, 2013

Hola gente, yo de nuevo por aquí. Hace muy poco tiempo me ha tocado trabaar para una empresa que tenía serios atrasos en un gateway GPS desarrollado en java. Al principio pensamos que era postgres, después el disco, la red, etc. Pero bueno al final el problema era el mismo GW que después de un número N de conexiones se paraba. Solución!, le saqué el polvo a un script que había hecho para balancear conexiones (algún día lo dejaré por aquí también) y lo modifiqué de la siguiente manera para que haga un round robin de conexiones. O sea, se crea una conexión nueva (-m state –state NEW) y se la manda a uno u otro (-m statistic –mode nth) haciendo coincidir el número de paquete (–packet 1), sobre la cantidad total de servicios (–every 3) cada vez que el límite se alcanza, el contador vuelve a cero. Pues bueno, acá les dejo el ejemplo para 3 servicios:

iptables -t nat -I PREROUTING -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 192.168.1.4:5507
iptables -t nat -I PREROUTING -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 1 -j DNAT --to-destination 192.168.1.5:5507
iptables -t nat -I PREROUTING -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 2 -j DNAT --to-destination 192.168.1.4:5512

Para los que usen shorewall, tienen que cambiar PREROUTING por net_dnat, les quedaría así:

iptables -t nat -I net_dnat -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 192.168.1.4:5507
iptables -t nat -I net_dnat -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 1 -j DNAT --to-destination 192.168.1.5:5507
iptables -t nat -I net_dnat -p tcp --dport 5507 -m state --state NEW -m statistic --mode nth --every 3 --packet 2 -j DNAT --to-destination 192.168.1.4:5512
Y bueno, eso es todo amigos. Espero que los saque del paso.
Saludos.

Mail alerts con pushOver

January 16th, 2013

Bueno una empresa me pidió que le haga un sistema para recibir notificaciones si el servidor de correo cae. Lo que se le puede ocurrir a todo el mundo es usar un telnet y monitorear el servicio, pero cosa de descartar problema de DNS, espacio en disco y demás cosas hice un daemon un poco más complejo.
La idea es:
+ Enviar un correo y revisar si lo recibimos desde otro servidor al nuestro.
+ Luego al revés, o sea, enviar un correo desde nuestro servidor al servidor de control a ver si llega.
Si en ambos casos llegar, todo perfecto, si no envía notificaciones push a una lista de iphones. Más sencillo imposible, y más útil tampoco :P.

Read the rest of this entry »

Problema de consumo de CPU en wordpress

August 23rd, 2012

Bueno gente, dije que nunca haría un repost, pero… esto me salvó la vida. Héchenle un ojo al sitio de este colega: http://black-byte.com/snippet/problemas-de-cpu-en-host-y-wp-cron-php/

El wp-cron.php a veces chupa muchos recursos y está bueno ejecutarlo en horas pico con un script de cron. Yo lo hice con este script:

solucionesroot:/# cat /etc/cron.daily/sitio_cron
#!/bin/bash
wget -qO – “http://www.sitio.com.ar/wp-cron.php?doing_wp_cron” > /dev/null
Espero que les sirva y no se olviden de agradecer al colega, siempre viene bien un gracias 😉

Medir la performance de una página

August 23rd, 2012

Hola gente, seguramente muchos ya lo conocen hay una página que te permite medir la velocidad con que carga nuestro sitio web. Esto es muy importante cuando necesitamos optimizar un sitio web, por ejemplo un worpress que consume muchos recursos. Bien el sitio es http://tools.pingdom.com/fpt/ está genial para descartar parámetros como la lentitud de tu conexión y solo concentrarse en el consumo de CPU, RAM y performance general del sitio.

Se los recomiendo.

Saludos

Mysql muy lento en Plesk

August 23rd, 2012

Bueno gente de vuelta de las vacaciones. Perdonen si en estos días anduve medio vago y no subí nada. Hoy voy a poner un par de artículos.

Por esa cosas de la vida me encontré con este problema, la tabla smtp_poplocks se llena demasiado rápido, para que se den una idea en solo una hora tiene 2217 registros, al cabo de un par de meses esta tabla tiene un par de miles imagino. El tema es que esta tabla se usa mucho, porque se usa cada vez que se hace un auth de smtp se fija primero si no hay un pop3 o un imap autenticado. Lo que hice como primera medida fue parar el xinetd, courrier imap, el qmail, y el spadyke (en ese orden), asegurarme de que no quede ningún proceso y simplemente borrar la tabla, luego levantar todo. Con esto la performance de uno de mis servidores pasó de 50% a 4% (en horas pico).

select count(*) from smtp_poplocks;

Espero les sirva, en un par de días actualizo con el script que voy a poner en el cron, lo pongo mientras para no olvidarme.

MN

Aplicación SWT parece colgada

October 21st, 2011

Gente, no se si se acuerdan que esto pasaba también con las aplicaciones programadas en Visual Basic 6, para el cual teníamos el mágigo DoEvents, que lo que hacía no era más que decirle al sistema operativo que se acuerde que hay que refrescar el display. Bueno después de buscar miles, leer sobre threads y demás encontré una solución tan sencilla como el DoEvents.

Simplemente agreguen al bucle (for while, lo que sea):

display.readAndDispatch();

Donde display es el display que creo la shell compisite o lo que fuese. Esto se complica cuando no es un bucle el que está consumiendo mucho si no una sola instrucción, para eso les recomiendo que lean esto:

http://book.javanb.com/swt-the-standard-widget-toolkit/ch05lev1sec7.html

Saludos y espero que les sirva.

MN