DTRX, un descompresor para descomprimirlos a todos

Os vamos a presentar una herramienta de las más útiles que me he encontrado en estos últimos años, se trata del descompresor DTRX capaz de descomprimir diferentes formatos de compresión. Aunque en realidad DTRX no es un descompresor, sino más bien una aplicación que simplifica la descompresión de archivos en Linux.

DTRX

DTRX requiere Python instalado en el sistema operativo y además hace uso de las diferentes herramientas de compresión/descompresión (bzip, unzip, etc). Lo importante es que estamos ante una aplicación de código abierto y gratuita que podemos usar prácticamente en cualquier distribución Linux.

Soporta infinidad de formatos de compresión, incluso algunos no muy usados. Esta herramienta la descubrí mientras trataba de descomprimir un archivo tar.xz y no conseguía el comando adecuado, pero con dtrx fichero.tar.xz se terminan los problemas.

DTRX, un descompresor para descomprimirlos a todos.


La sintaxis de DTRX es tan simple como dtrx fichero.tar.gz, lo que consigue que nos olvidemos completamente de las diferentes sintaxis de los diferentes compresores.

El proceso se ve simplificado a memorizar un único comando. Una de las opciones que más me ha gustado es la posibilidad de descomprimir archivos accesibles a través de HTTP. Por ejemplo, podemos ejecutar el comando dtrx https://wordpress.org/latest.tar.gz, especificando una URL con el archivo, el propio programa se encarga de descargarlo con wget y después descomprimirlo.

Otra característica que hace de esta herramienta algo especial, es que tras descomprimir los archivos es capaz de cambiar los permisos para que el dueño tenga permisos de lectura y escritura sobre los archivos.

Además es un ejemplo de aplicación útil y funcional que nos demuestra una vez más la versatilidad de lenguaje de programación Python. En menos de 1400 líneas de código tenemos un script capaz de lidiar con múltiples formatos comprimidos por nosotros.

Archivo de conexión de base de datos de Drupal 7

Si te encuentras haciendo el traslado de una instalación de Drupal 7 de un proveedor de hosting a otro, o de cambiaste la clave del usuario de la base de datos de Drupal, te va ser de mucha utilidad saber en donde se guardan los datos de conexión.\

Busca el archivo settings.php, esta en la carpeta sites/default en el directorio home de tu instalación, luego en el interior busca las lineas siguientes que deben estar sin comentarios, en este caso es un ejemplo, las lineas que normalmente cambias son "database", "username" y "password".

$databases['default']['default'] = array(
  'driver' => 'mysql',
  'database' => 'drupaldb',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'localhost',
);

Como obtener un reporte de osTicket que incluya campos personalizados

Si estás utilizando el sistema osTicket para gestionar los casos que recibe x departamento en tu empresa, es posible que te hayas encontrado con la necesidad de incluir campos personalizados o inclusive formularios personalizados, en la repostería básica que incluye osTicket notaras que en en dichos reportes no se incluyen estos nuevos campos, para hacer un reporte de este tipo deberás conectarte directamente a la base de datos y ejecutarlo por tu cuenta.

Primero necesitas saber el id del campo, la información sobre estos campos se encuentra en la tabla "ost_form_field" y la puedes obtener con el siguiente query.

select * from ost_form_field;

El query anterior me genera una listado de todos los campos creados en mis formularios, incluidos los personalizados que yo he creado, en este caso el campo que me interesa es un campo de fecha el cual tendrá el titulo de "Fecha de Inicio" en el query siguiente y el id es el 39, como puedes ver abajo este reporte esta limitado a los tickets del departamento con id = 3, si quieres un reporte de todos los departamentos que incluyan este campo elimina esta condicionante " and ost_ticket.dept_id = 3".

select ost_ticket.number as "Numero de Ticket", ost_ticket.created as "Creado", ost_ticket.closed as "Cerrado", ost_ticket__cdata.subject as "Incidente/Requerimiento", ost_department.name as "Departamento", ost_form_entry_values.value as "Fecha de Inicio",  ost_ticket.duedate as "Fecha de Vencimiento" from ost_ticket, ost_ticket__cdata, ost_department, ost_form_entry, ost_form_entry_values where ost_department.id = ost_ticket.dept_id and ost_ticket.ticket_id = ost_ticket__cdata.ticket_id and  ost_ticket.dept_id = 3  and ost_ticket.ticket_id = ost_form_entry.object_id and ost_form_entry_values.entry_id = ost_form_entry.id and field_id = 39 order by ost_ticket.created;