2012/10/02

Programando tareas automáticas usando CRON

Para automatizar tareas de un modo rápido, cron es un método genial que viene incluido en la todos los sistemas operativos GNU/Linux. Para programar tareas hay que usar el comando:
crontab -e
Ahi se describe la sintaxis de la programación de tareas de forma muy sencilla. Lo que no explican es cómo hacer que una tarea se repita, por ejemplo, cada 15 minutos. Es decir, ¿cómo establezco rangos temporales?. Habría que escribir algo así:
*/15 * * * * mi_tarea
¿Y si sólo quiero que se ejecute los días de semana laborales en horario de 9h a 14h y de 16h a 20h?. Vixie Cron admite listas de parámetros, por lo que puedo hacer esto:
*/15 9-14,16-20 * * 1-5 mi_tarea
Más información útil aquí. NOTA: Ojo con la fecha/hora y la zona horaria de la máquina.
       
   

2012/08/02

VirtualBox como máquina servidora


Hace tiempo que utilizo pequeñas máquinas virtuales para hacer pruebas de servicios con VirtualBox que tienen la verdad muchísimas ventajas, sobre todo en entornos corporativos donde no es fácil que autoricen la instalación de software continuamente.

Ahora con la versión VirtualBox 4.1.6 en máquinas Windows, me resulta esta útil esta secuencia de comandos para habilitar el acceso por red a la máquina invitada a los puertos más comunes en mis proyectos.

Cambiar "midebian" por el nombre de la máquina que corresponda.
cd "C:\Archivos de programa"\Oracle\VirtualBox"
VBoxManage modifyvm "midebian" --natpf1 "guestssh,tcp,,2222,,22"
VBoxManage modifyvm "midebian" --natpf1 "guest80,tcp,,80,,80"
VBoxManage modifyvm "midebian" --natpf1 "guest8080,tcp,,8080,,8080"
VBoxManage modifyvm "midebian" --natpf1 "guest5432,tcp,,5432,,5432"
Para ver la configuración actual incluídos estos parámetros.
VBoxManage showvminfo "midebian"
Recordatorio: Configuraciones de Postgresql
Para poder conectarse desde el host a postgresql, ahí van una configuración rápida: Editar el fichero "/etc/postgresql/8.4/main/pg_hba.conf"
# IPv4 local connections: host all all 0.0.0.0/0 md5 
Editar el fichero "/etc/postgresql/8.4/main/postgresql.conf"
listen_addresses = '*'
Reiniciar el servidor postgresql:
/etc/init.d/postgresql restart
       
   

2012/06/23

FLOSS, administración y soberanía

Hace unos día leí "Stallman: "El Estado debe usar software libre para mantener su soberanía informática" y leyendo comentarios de personas haciendo "apología" de MS-Office y de Apple no alcanzo a comprender muy bien esas posturas.

Nunca entenderé como hay personas/ciudadanos a favor de que empresas extranjeras de software privativo (que cierran el conocimiento y realizan una inversión cercana a cero en nuestro entorno) sean beneficiarias de sumas multimillonarias año tras año, de todas las administraciones públicas, empresas y particulares en prácticamente el 100% de todos los ordenadores del mundo... (imaginaos la cifra). Se aprovechan de la división interna existente en los organismos, generan dependencias, en muchos casos ejercen prácticas abusivas, hacen cautiva la información no siguiendo estándares o "ampliándolos" (rompiendo compatibilidad), hacen competencia desleal, impiden la creación de tejido tecnológico local o si lo hay lo hacen débil y supeditado a ellos, manipulan las tendencias de consumo, etc.

Siguiendo el ejemplo de los comentarios MS-Office y Windows  están muy bien, pero OJO, es así porque se les está pagando cantidades de dinero impresionantes desde hace muchos años. Además no es que estén ofreciendo cosas extraordinarias, los usuarios estamos haciendo de testers de versión en versión, hacemos sugerencias y les damos ideas innovadoras que ellos aprovechan para luego re-vendernoslas en siguientes versiones.

Es increible que con ese escenario tan sumamente manipulado surja software libre (FLOSS) de tanta calidad como el que tenemos, en muchos casos, altamente superior al privativo. Lo que me gustaría que la gente comprendiese es que si existiese un poco de cooperación inter-administrativa y se coordinasen fondos entre ayuntamientos, comunidades autónomas, países, etc. y dijesen que todo el software de la administración DEBE ser LIBRE, el ahorro sería de CIENTOS DE MILLONES DE EUROS año tras año, la tecnología avanzaría de forma mucho más rápida, y la riqueza derivada del desarrollo sería repartida de manera más equitativa. Con un pequeño porcentaje de la inversión que se hace actualmente en software privativo, se podrían hacer productos equivalentes en FLOSS de igual o mayor calidad y disponibles libremente para toda la sociedad.


Que un software sea privado no es garantía de nada, más bien al contrario: nadie puede auditar internamente lo que hace ese software, los intereses de todos los usuarios están supeditados a decisiones de márketing de unos pocos, etc. Hay que recordar una cosa, el que un software tenga licencia privativa sólo tiene ventajas negativas para la sociedad, son restricciones, impedimentos, medidas de presión, etc. A menos que seas el propietario de una compañía de software privativo, no puedo comprender el interés en seguir con esta injusticia.



       
   

2012/04/09

Resetear sesiones de usuarios conectados a Postgresql

Muchas veces hay usuarios que han dejado su conexión abierta y están bloqueando la base de datos impidiendo hacer algunas tareas de administración, vacuums, renames, etc.

Para localizarlos se puede usar:

select datname, usename, procpid from pg_stat_activity;

Luego simplemente para eliminar todos:

select pg_terminate_backend(procpid) from pg_stat_activity where datname='whatever';

UPDATE: Algunos datos temporales interesantes sobre las conexiones:

select datname, usename, procpid, xact_start, backend_start, query_start from pg_stat_activity;
http://www.postgresonline.com/journal/archives/134-Terminating-Annoying-Back-Ends.html
       
   

2012/04/05

Emacs para desarrollo web

Para no pelearse con los conflictos con los php-mode y html-mode se puede uno instalar Nxhtml que además de resolver ese problema ofrece un montón de comodidades. 

Lo instalé siguiendo estos pasos:

  1. Descargar el fichero: web-vcs.el 
  2. Abrirlo y desde Emacs:
                M-x eval-buffer
  3. Luego:
               M-x web-vcs-nxhtml 
Con esto comienza la instalación... pero finalmente me dió algunos fallos.

Entonces lo que hice fue bajarlo en formato ZIP y seguí las instrucciones del README.

Necesité instalar la sb-html.el en .emacs.d/site-lisp y listo!!