jueves, 3 de octubre de 2013

Linux: Bloqueando y apagando el monitor

Hoy les traigo un poco de administración de equipos en ambiente Linux.

Estos script que les dejo hoy aquí,son: uno es para apagar el monitor y el otro es para bloquearlo.

Para que funcionen de forma automática, les recomiendo colocarlos en el crontab.

El de apagar el monitor deben hacerlo en el cron de root:

55 16 * * * turnOnOffMonitor.sh off

Y el de bloquear el monitor lo hacen desde un usuario que no sea root (crontab -e -u <usuario>):

50 16 * * * bloquearMonitor.sh

Los enlaces de los archivos son los siguientes:
https://dl.dropboxusercontent.com/u/71252081/bloquearMonitor.sh
https://dl.dropboxusercontent.com/u/71252081/turnOnOffMonitor.sh

Espero que les sea de utilidad, hasta una próxima.

martes, 1 de octubre de 2013

Codeigniter: Generando un XML

En la entrada de hoy, voy a regresar al framework Codeigniter, y voy a mostrar, como de forma muy sencilla y con pocas lineas, se puede generar un xml a partir del resultado de una consulta.

Parto del principio que ya tienen instalado (si se puede llamar así) el framework, y tienen una base de datos en Mysql con alguna tabla.

En mi caso, tengo una base de datos de nombre "ci", y los parámetros de la conexión ya los tengo configurados en el archivo database.php de la carpeta config.

Primero creo un modelo de nombre prueba, y dentro tengo la función


        function consulta($sql){
return $this->db->query($sql);
}

La cual recibe como parámetro el sql a ejecutar.

Luego tengo mi controlador llamado generateXML, el cual contiene las siguientes funciones


        public function generar()
{
$this->load->dbutil();
$this->load->model('prueba');
$config = array (
'root'    => 'usuarios',
'element' => 'registro',
'newline' => "\n",
'tab'    => "\t"
);
header("Content-Type: application/rss+xml; charset=utf-8");
echo $this->dbutil->xml_from_result($this->prueba->consulta('select Id as identificador,Usuario as login, Password as pass from ci.Usuarios'),$config);
}


       public function __construct() {
// TODO: Auto-generated method stub
parent::__construct();
$this->load->helper('xml');
}

Uso la clase dbutil para poder realizar la exportación a xml. Esta clase tiene varias funciones muy importantes, una de ella que me llamo la atención ( a parte de la que uso en este post) es la de backup, la cual próximamente estaré hablando de ella en un sistema que estoy realizando.

El resultado lo estoy mostrando por pantalla, pero podría mandarlo a un archivo, para lo cual tendrían que hacer lo siguiente:

$this->load->helper(array('xml','file')); //Esto en construct en vez de solo xml

Comentar el header y el echo en la función generar y colocar


              if(!write_file('/ruta/a/guardar/tabla.xml', $this->dbutil->xml_from_result($this->prueba->consulta('select Id as identificador,Usuario as login, Password as pass from ci.Usuarios'),$config)))
echo "No se pudo";
else
echo "Se grabo";


Es importante, la ruta en donde se va a guardar el archivo debe tener permiso de escritura para el usuario www-data.

Espero que les sea de utilidad, y hasta el siguiente post.