lunes, 12 de diciembre de 2011

Chequear si se ha iniciado una sesión en PHP

Para iniciar una sesión en PHP, utilizamos la función session_start(), sin embargo, una práctica común (no necesariamente buena siempre) es forzar a que las sesiones se inicien automáticamente, modificando el archivo de configuración php.ini, especificamente haciendo session.auto_start = 1.

Bueno, el problema es que si ejecutamos session_start() y ya se encuentra una sesión activa (porque hayamos invocado anteriormente session_start() o porque se inicien automáticamente por nuestro php.ini), a partir de la versión 4.3.3 de PHP, se imprimirá un horrible mensaje tipo Notice:


Notice: A session had already been started - ignoring session_start()


Lo correcto es que invoquemos session_start() sólo si es necesario. Para ello, utilizaremos la función session_id(), la cual devuelve una cadena correspondiente al id de la sesión actual o una cadena vacía si no hay una sesión iniciado. Un posible uso sería:

<?php
if (strlen(session_id()) < 1)

  session_start();
?>



lunes, 5 de diciembre de 2011

Gestión de Máquinas Virtuales por Cónsola

En varias entradas anteriores he escrito un poco sobre máquinas virtuales en Linux, utilizando KVM/Qemu y Virt-Manager. En los últimos tiempos las he estado utilizando para simular una pequeña red de 4 computadores, en la que 3 de ellos son virtuales y se utilzan como un clúster de balanceo de carga (1 nodo director y 2 servidores reales).

El manejo de GUIs con Virt-Manager es realmente sencillo, más sin embargo, se desperdician muchos recursos si queremos tener las interfaces de 3 máquinas virtuales, para simplemente editar uno que otro archivo. En esta entrada, voy a mostrar algunos de los comandos virsh más comunes para la gestión de MVs mediante la consola.

Arrancar una Máquina Virtual es tan sencillo como:
virsh -c qemu:///system start nombre_maquina

Para arrancar automáticamente una MV al bootear:
virsh -c qemu:///system autostart nombre_maquina

Apagar una MV:
virsh -c qemu:///system shutdown nombre_maquina

Para listar las MVs que están corriendo en el sistema:
virsh -c qemu:///system list

Para reiniciar una MV:
virsh -c qemu:///system reboot nombre_maquina

Guardar el estado de una maquina virtual (y detenerla):
virsh -c qemu:///system save nombre_maquina nombre-20111205.state

Restaurar una MV a partir de un estado guardado:
virsh -c qemu:///sysem restore nombre-20111205.state


Con estos comandos es más que suficiente para realizar las tareas básicas de gestión. Y por supuesto, si lo que necesitamos es conectarnos a una cónsola para realizar alguna tarea sobre una MV, pues nada, ahí está el comando SSH ;)