lunes, 22 de octubre de 2012

¡Coño! ¡Diez mil visitas! :D

Bueno, antes que nada decir que soy consciente que diez mil visitas no es mucho para un blog que lleva activo desde 2010. Otros blogs tienen ese volumen de tráfico por día.

Por otro lado, mi intención nunca fue tener el blog más popular de Internet. Desde siempre me ha gustado escribir pequeños artículos sobre temas técnicos. Esos artículos siempre acababan perdidos por mi disco duro o desperdigados por distintos foros. Así que un día me dije: "Para acabar perdiéndolos, mejor creo un blog y los dejo ahí. Así los tengo todos localizados, y a lo mejor hasta le resultan útiles a alguien".

Unos cuantos años más tarde, parece que el blog sí le ha resultado útil a alguien. Además, para mantener el blog activo tanto tiempo hace falta ser constante, y esa es una virtud que no me sobra. Razón de más para tomarme una buena cerveza alemana a mi salud. ¡Prosit!


Linux: cómo encriptar una partición de disco.

- Introducción.

El uso de datos o particiones encriptadas en Linux es un tema bastante amplio. Este artículo no pretende ser una descripción exhaustiva, me voy a centrar en un caso muy simple. Los mismos principios que aprenderás aquí podrás usarlos para encriptar particiones de sistema, de usuario, etc. Solo necesitarás automatizar todo un poco.

Mi caso es el siguiente. Uso un disco duro externo con interfaz eSATA para mis copias de seguridad. Como considero que parte de la información que almaceno ahí es sensible, quiero encriptar la partición para que, en caso de pérdida, no sea accesible.  Tan sencillo como eso.

Actualmente estoy usando una distribución Debian Wheezy con un kernel 3.2.0-3-amd64 Las instrucciones deberían valer para cualquier distribución de Linux moderna.

- Copia de seguridad

Que yo sepa no hay forma de convertir una partición no encriptada en una encriptada. Para crear la partición encriptada es necesario borrar todos los datos que hay en ella, así que, si tienes datos que quieras conservar, tendrás que hacer una copia externa y luego restaurarla.

Por otro lado, es evidente que si pierdes la contraseña de la partición encriptada, pierdes los datos. Actúa en consecuencia.

- Preparando la partición

En primer lugar, necesitas instalar cryptsetup. En Debian:

apt-get install cryptsetup

Ahora vamos a crear el dispositivo. Suponiendo que queremos encriptar la partición /dev/sdb2

root@jose:~# cryptsetup luksFormat /dev/sdb2
WARNING!
========
This will overwrite data on /dev/sdb2 irrevocably.
Are you sure? (Type uppercase yes):
YES
Enter LUKS passphrase:
Verify passphrase:

Bien, ya hemos creado nuestra partición y le hemos dado una clave. Ahora tenemos que abrirla :

root@jose:~# cryptsetup luksOpen /dev/sdb2 vol-backup
Enter passphrase for /dev/sdb2:

IMPORTANTE: a partir de ahora, sólo nos referiremos al dispositivo como /dev/mapper/vol-backup (o cualquier otro nombre que quieras darle en la orden luksOpen), no como /dev/sdb2.

Una vez abierta, creamos nuestro sistema de ficheros encima. Yo uso ext4, puedes usar el que quieras.

root@jose:~# mkfs.ext4 /dev/mapper/vol-backup 


Nuestro sistema ya está listo para ser utilizado. Vamos a cerrarlo para enlazar con la siguiente sección:

cryptsetup luksClose  vol-backup

- Usando la partición.

Cuando quieras usar la partición encriptada, primero tienes que abrirla (dando la contraseña), y luego montarla. Recuerda que, una vez la has abierto, tienes que acceder a la partición a través de /dev/mapper/ :


root@jose:~# cryptsetup luksOpen /dev/sdb2 vol-backup
Enter passphrase for /dev/sdb2: 
root@jose:~# mount /dev/mapper/vol-backup /mnt/backup

Cuando hayas terminado, la desmontas y la cierras:


umount /mnt/backup/
cryptsetup luksClose  vol-backup



domingo, 12 de agosto de 2012

Linux: Cómo pasar a segundo plano un proceso que ya ha arrancado.

Cuando se está trabajando en una consola y se quiere arrancar un programa, lo habitual es arrancarlo en segundo plano para poder seguir trabajando en la consola:

 $ gedit &
 [1] 8274
 $

Es muy típico arrancar el programa, olvidarte de poner el & para que funcione en segundo plano, y quedarte con la terminal bloqueada:

 $ gedit

Bien, pues con la terminal bloqueada puedes pulsar ctrl+z para detener el proceso:

 $ gedit
 ^Z
 [1]+ Detenido gedit
 $

Ahora el proceso está completamente detenido, así que obviamente no funciona. Lo que hay que hacer es ponerlo a funcionar otra vez en segundo plano con la orden bg :

 $ gedit
 ^Z
 [1]+ Detenido gedit
 $ bg
 [1]+ gedit &
 $

... y ya tienes el terminal desbloqueado y el proceso funcionando

miércoles, 1 de agosto de 2012

Mi empresa no me paga, ¿qué hago?

Introducción.

Bueno, antes que nada quiero dejar claro que no soy abogado. En este artículo sólo quiero compartir mi experiencia y mis opiniones como trabajador. También quiero comentar que estas experiencias se produjeron en España durante los años 2011 y 2012, y ha habido algunos cambios normativos (a peor) desde entonces.

Espero que esta información te pueda resultar útil como una especie de segunda opinión, pero por favor, si vas a tomar decisiones que afectan a tu bolsillo, asesórate bien en una fuente solvente.

Buscando ayuda.

Cuando tenemos problemas laborales, lo primero que nos acude a la mente es un sindicato.

La mayoría de sindicatos (al menos, con los que yo he hablado) ofrecen asistencia jurídica a las personas que llevan una cantidad de tiempo afiliadas, p. ej. un año. Para las personas no afiliadas, cobran como cualquier abogado privado.

Si crees que en el futuro puedes tener problemas laborales, puede que te interese afiliarte con antelación. Si tienes problemas ahora y no estás afiliado, tienes otras dos opciones.

La primera es buscar un abogado de oficio. Por el momento, no hay restricciones a la hora de pedir uno (puedes solicitarlo aunque ganes 6000 euros al mes). Busca en la web de tu Comunidad Autónoma. Es gratis pero tiene el inconveniente que no se elige, te lo asignan, y como en cualquier colectivo los hay mejores y peores.

La segunda es contratar un abogado. En ese caso, te costará de un 15 a un 20 por ciento de la cantidad que consigas recuperar, con un anticipo de unos 300 euros (creo que son los precios del Colegio Oficial) Sin embargo, si estáis varios trabajadores en el mismo problema podéis -debéis- negociar las tarifas. En mi caso, he conseguido ofertas de 100 euros y un 6 por ciento de la cantidad rescatada, aunque éramos bastantes.

No me han pagado una nómina.

En general, la empresa tiene la obligación de pagar las nóminas del día uno al cinco de cada mes, por tanto, el día seis puedes reclamar tu nómina. El plazo máximo para reclamar es de un año.

Lo primero que hay que hacer es acudir al Servicio de Conciliación de tu Comunidad Autónoma, y presentar una papeleta de conciliación en el Registro. Puedes obtener las plantillas en la página web del Servicio de Conciliación.

Una vez presentada, se te asignará un día y una hora para el acto de conciliación, normalmente en unos 15 días, y se citará a tu empresa para que también acuda. En el acto de conciliación, ante el letrado conciliador, pueden pasar tres cosas.

La primera, es que ya te hayan pagado la nómina. En ese caso, no te presentes (y avisa a tu empresa para que tampoco vaya). El procedimiento se archiva y termina aquí, así de simple.

La segunda, es que se presenten las dos partes, y se llegue a un acuerdo de reconocimiento de deuda y una fecha de pago. Ésto último es muy importante. El acuerdo es de obligado cumplimiento por parte de la empresa, creo que tiene el mismo rango que una sentencia judicial.

La tercera posibilidad es que no se presente la empresa, o se presente y no se llegue a un acuerdo. Saldrás del acto de conciliación con un papel que dirá exactamente eso. A partir de ese momento, puedes irte al juzgado, poner una demanda y seguir el camino judicial.

Probablemente tengas el juicio ganado, a fin de cuentas estás pidiendo la aplicación directa de la ley. Pero, dependiendo de cómo esté el juzgado que te toque, un juicio de reclamación de cantidades puede tardar más de un año en salir, y hay que tener en cuenta la posibilidad de recurso.

Otra observación. El trámite de la conciliación es muy sencillo, y puedes hacerlo solo. Pero si vas a poner una demanda, es imprescindible conseguir un abogado.

Mi empresa me debe varias nóminas.

Aunque la ley no da un número exacto, cuando te deban tres nóminas, o haya habido un retraso frecuente en el pago de al menos seis nóminas, puedes pedir la rescisión del contrato (junto con la cantidad adeudada).

El trámite es similar al anterior: rellenas un formulario, se convoca un acto de conciliación, y si no hay acuerdo te vas al juzgado. En tu demanda vas a decir que la empresa no ha cumplido su parte del contrato, por lo que pedirás la indemnización máxima, es como si te hubieran despedido.

Las rescisiones de contrato son más "urgentes" que las reclamaciones de cantidades. Dependiendo de cómo esté el Juzgado, el juicio puede tardar "sólo" 8 o 9 meses.

Recuerda que, con independencia de si tienes juicios pendientes o del número de nóminas que te deban, tienes la obligación de seguir yendo a trabajar, o la empresa te despedirá de forma procedente (sin indemnización y sin derecho a paro) por incumplir tu parte del contrato.

Mi empresa ha entrado en concurso de acreedores.

Siguiendo con el catálogo de horrores a los que puedes enfrentarse, llegamos al concurso de acreedores (antigua suspensión de pagos).

Cuando una empresa no puede hacer frente a sus deudas tiene la obligación de declararse en concurso de acreedores. También es posible que un deudor la obligue a entrar en concurso, pero en este caso el administrador de la empresa debe responder con sus bienes, así que lo normal es que entre de modo voluntario.

Para ello, debe solicitar el concurso ante la autoridad laboral. Dicha autoridad  nombrará un administrador judicial para la empresa (trámite que ahora dura un par de meses) y publicará el concurso en el BOE (varias semanas más desde el nombramiento del administrador). Es muy probable que esos plazos de tiempo se traduzcan en más nóminas impagadas.

Lo primero que hace el administrador es trincar sus honorarios, y después examina la situación de la empresa. Si considera que no es viable (las más de las veces), despedirá a todo el personal y cerrará la empresa. Si la considera viable, aplicará cuantas medidas sean necesarias para que pueda continuar su actividad (normalmente muchos despidos, y más cosas).

¿Y en que te afecta el concurso si tienes nóminas impagadas?  Te jode vivo.

En el concurso de acreedores la deuda de la empresa se clasifica entre "prioritaria" y "normal". Sólo se considerará "prioritaria" la nómina correspondiente a los treinta días anteriores al nombramiento del administrador, y las que se generen hasta que finalice el concurso. El resto de nóminas se consideran "no prioritarias".

Ten en cuenta que las deudas que son "prioritarias" no son de pago obligado. Si y sólo si hay dinero (de la venta de bienes, o por los contratos de la empresa), éste se reparte entre tus nóminas prioritarias, Hacienda, Seguridad Social y bancos. ¿Te creías que no iban a aparecer todos juntos para para poner el cazo en el peor momento? ¡Ja!  Lo que sobre (si sobra), se usa para el resto de deudas, como nóminas no prioritarias, proveedores, alquileres, etc.

Por tanto, es perfectamente posible tirarse tres meses en concurso de acreedores, sin cobrar un duro, y obligado a seguir yendo a trabajar.

Una vez seas despedido y la empresa cerrada, podrás reclamar al FOGASA las nóminas (prioritarias o no) que no te hayan pagado, así como la indemnización por despido.

FOGASA

Ahora sí, estás en la última parada. El Fogasa (Fondo de Garantía Salarial) se hará cargo de parte de las deudas (nóminas e indemnización) a las que tu empresa no ha hecho frente.

Cuando yo tramité mi solicitud, el FOGASA cubría hasta tres veces el salario mínimo interprofesional por nómina hasta un máximo de cuatro, y una indemnización de hasta 12 días por año trabajado. En las reformas llevadas a cabo por el PP en el verano del 2012, las coberturas se han rebajado considerablemente.

Para solicitar tu indemnización, tendrás que realizar un trámite tercermundista que incluye rellenar un formulario,adjuntar cierta documentación, y hacer cola desde las 6 de la mañana durante 7 u 8 horas en el organismo correspondiente. Luego sólo hay que esperar un mínimo de 7 u 8 meses a que se resuelva el expediente, y una cantidad indeterminada de tiempo hasta que te paguen.

Actualización a 03-07-13 : Ahora es posible pedir cita previa. Pero una vez presentado el expediente, el tiempo de respuesta es superior al año. 

Conozco gente que ha tardado hasta tres años en cobrar. No sé si es habitual, si tuvo problemas en la tramitación o qué, pero desde luego no cuentes con tu dinero a corto plazo.

Mis conclusiones.

La Justicia española es incapaz de garantizar un derecho tan básico como el cobro del salario. Las leyes son muy claras, pero tardan meses o años en aplicarse, y ningún trabajador puede aguantar tanto sin cobrar.

No dejes que la complejidad de algunos trámites te desanime. Es tu dinero. Exígelo.

A veces, la indemnización actúa como un gancho, hace que te quedes en la empresa contra viento y marea, y al final del camino te quedas sin nada.

Si tenías un contrato de antes de la reforma laboral de 2012, tenías derecho a 45 días por año trabajado, ¿no? Pues si la empresa presenta un ERE, van a darte 20. Y si quiebra, en el FOGASA no va a  llegar a 12 (y creo que lo han bajado más).  Pero para llegar al FOGASA se tarda muchos meses que es posible que no te paguen, así que... ¿merece la pena?

En resumen, haz muy bien tus cuentas, y si las nóminas impagadas se acumulan, empieza a buscarte otro trabajo YA.


viernes, 27 de julio de 2012

Linux: como generar un número limitado de subprocesos en segundo plano

Esta situación se me ha dado con bastante frecuencia. Imagínate que tienes que procesar una gran cantidad de archivos en un árbol de directorios, y que por cada archivo tienes que ejecutar un proceso algo pesado (por ejemplo, bzip2).

A voz de pronto, la forma más fácil de hacerlo es:

$ find . -type f -exec bzip2 \{\} \;

Esto ejecutará nuestro  proceso ... de uno en uno. Estamos en el año 2012, nuestros procesadores tienen muchos núcleos, y ya que los pagamos queremos usarlos. Bien, la alternativa podría ser:

$ find . -type f -exec bzip2 \{\} \& \;

¡Olé! Ahora en lugar de un solo proceso, vamos a empezar a crear procesos sin control hasta que el sistema se colapse o alcancemos el límite máximo (ver ulimit), y obtengamos un error. No parece la mejor solución.

Lo que realmente queremos es que el sistema genere 4, 5, ó 20 procesos, y que a medida que vayan acabando se generen otros nuevos que reemplacen a los que han terminado. La solución más simple nos la da xargs :

$ find . -type f -print | xargs -P 5 -d "\n" -n 1 bzip2

La clave está en el parámetro -P , que limita exactamente el número máximo de procesos a crear. De hecho, si hacemos un ps -ef ....


jose      8462  2856  0 13:44 pts/3    00:00:01 xargs -P 5 -d \n -n 1 bzip2
jose     24599  8462 39 13:57 pts/3    00:00:02 bzip2 ./Backups/servers/mail/vhosts/tri.com/egd/cur/1310570188.V811I1ad008cM674902.mail:2,S
jose     24613  8462 53 13:57 pts/3    00:00:01 bzip2 ./Backups/servers/mail/vhosts/tri.com/egd/cur/1310562280.V811I1ad0048M849935.mail:2,S
jose     24615  8462 44 13:57 pts/3    00:00:01 bzip2 ./Backups/servers/mail/vhosts/tri.com/egd/cur/1310569446.V811I1ad0080M942514.mail:2,S
jose     24622  8462 41 13:57 pts/3    00:00:00 bzip2 ./Backups/servers/mail/vhosts/tri.com/egd/cur/1310560224.V811I1ad0024M906849.mail:2,S
jose     24623  8462  0 13:57 pts/3    00:00:00 bzip2 ./Backups/servers/mail/vhosts/tri.com/egd/cur/1310571017.V811I1ad0096M988948.mail:2,S


Por cierto, no te pases mucho con el número de procesos simultáneos, o la carga del sistema subirá demasiado y puede que sea más lenta la solución en paralelo a la solución en serie.