jueves, 29 de agosto de 2013

Cómo asociar enlaces magnet con Iceweasel/Firefox y Ktorrent

En ésta entrada os dejo la forma de asociar los enlaces "magnet" con Iceweasel o Firefox para que cuando hagamos clic en uno de ellos se añade automáticamente a KTorrent (o el programa cliente de tu elección, haciendo los cambios oportunos).

Lo primero que haremos será abrir nuestro navegador y escribir en la barra de direcciones lo siguiente:

about:config

Si os sale algún mensaje de advertencia, pues aceptáis.

A continuación haremos los siguientes tres pasos:

1º Clic con botón derecho, seleccionamos Nuevo/Lógico, introducimos:

network.protocol-handler.external.magnet
Le damos el valor "true".

2º Clic con botón derecho, seleccionamos Nuevo/Cadena, introducimos:

network.protocol-handler.app.ktorrent
Le damos el valor "/usr/bin/ktorrent".

3º Clic con botón derecho, seleccionamos Nuevo/Lógico, introducimos:

network.protocol-handler.expose.magnet
Le damos el valor "false".

El primer enlace "magnet" que cliquemos desde ahora, abrirá una ventana preguntando la aplicación con la que quieres abrirlo.

Figura 1. Ventana emergente

Escogemos "KTorrent" y marcamos la casilla de "Recordar mi elección para los enlaces magnet".

Figura 2. Recuerda marcar la opción

Os dejo este de ejemplo para que terminéis la configuración: Pink Floyd The Dark Side Of The Moon 2011 Remastered 320 Kbps

sábado, 27 de julio de 2013

Conocer la versión de ALSA instalada en mi sistema.

Conocer la versión que estamos usando nos puede ser de utilidad cuando vayamos a adquirir una nueva tarjeta de sonido y queramos, por ejemplo, comprobar si tiene soporte en GNU/Linux o no.

Figura 1. Logo del proyecto ALSA

Antes de comprar, recomiendo visitar la web del proyecto ALSA, especialmente la lista de tarjetas de sonido soportadas.

A lo que íbamos, si quieres conocer la versión instalada en tu sistema, usa el siguiente comando:

sink@cain:~$ cat /proc/asound/version

En mi caso, obtengo la siguiente respuesta:

Advanced Linux Sound Architecture Driver Version 1.0.24.

Eso es todo por hoy.


miércoles, 26 de junio de 2013

Eliminar mensajes duplicados en Icedove o Thunderbird

Aprovechando que ya sabemos hacer copias de seguridad cifradas, me he puesto a tocar los filtros para ordenar, archivar y eliminar los miles de mensajes de correo que tengo almacenados, quizás escriba sobre los filtros que he hecho para mantener a los correos y GMail "controlado" más adelante.

Mientras jugaba con los filtros, se me duplicaron cientos de mensajes y evidentemente, hacerlo a mano no era una solución. Aquí es cuando me he encontrado con la extensión "Remove Duplicate Messages", no puede tener un nombre más descriptivo.

Una vez lo instalemos, es tan sencillo de usar como hacer clic derecho sobre la carpeta que queramos limpiar de duplicados y marcar "Borrar mensajes duplicados".

Figura 1. Menú al hacer clic derecho sobre la carpeta

Nos saldrá una ventana como esta:

Figura 2. Ventana de selección de mensajes duplicados

Los que tienen la marca DEL serán los que se eliminarán, basta comprobar que todo está correcto y hacer clic en "Delete Selected".

domingo, 23 de junio de 2013

Hacer copia de seguridad cifrada con LUKS y crontab

Tras un tiempo haciendo copias de seguridad en un disco duro externo (WD Elements 500GB) usando "rsync", me he puesto con algo que quería hacer desde que lo compré: cifrar los datos de dicha copia con LUKS, hacer la copia con rsync y programarla con crontab.

Empecemos pues a preparar la partición cifrada con LUKS.

Lo primero de todo es instalar "cryptsetup":

root@cain:~# apt-get install cryptsetup

Una vez tengamos decidido la partición que vamos a usar tenemos que prepararla, lo primero es formatear la partición:

cryptsetup luksFormat /dev/[partición]

root@cain:~# cryptsetup luksFormat /dev/sdd2

Nos pedirá que metamos una passphrase que será la que usemos para montar manualmente dicha partición.

Luego tenemos que "abrir" o "activar" la partición LUKS para poder trabajar con ella. Podremos acceder a través de "/dev/mapper".

cryptsetup luksOpen /dev/disk/by-uuid/[uuid] [nombre lógico]

root@cain:~# cryptsetup luksOpen /dev/media/by-uuid/b272b0cd-bc71-4d7f-83a5-796e7agbea3d Backups

Ahora debemos crear el sistema de ficheros, en mi caso he usado ext4.

mkfs.ext4 /dev/mapper/[nombre lógico]

root@cain:~# mkfs.ext4 /dev/mapper/Backups

Al finalizar podremos montarla como cualquier otro dispositivo, recuerda que si no existe, debes crear la carpeta de [ruta montaje].

mount /dev/mapper/[nombre lógico] [ruta montaje]

root@cain:~# mount /dev/mapper/Backups /media/Backups

Ya podemos almacenar nuestros datos de una forma segura. Cuando acabemos de trabajar con la partición, la desmontaremos de la siguiente forma y orden:

umount /media/Backups

root@cain:~# umount /media/Backups

Y luego:

cryptsetup luksClose /dev/mapper/[nombre logico]

root@cain:~# cryptsetup luksClose /dev/mapper/Backups

Lo anterior es muy útil para trabajar con la partición manualmente, pero nuestro objetivo es automatizar el proceso, por eso vamos a crear un "keyfile", que usaremos más adelante, para evitar tener que introducir la "passphrase" cada vez.

El fichero o su contenido puede ser el que queramos, pero ese fichero será el único con el que podremos acceder a la partición, a menos que configuremos más (podemos configurar hasta 10 distintos entre keyfiles y passphrases), aparte del passphrase mencionado anteriormente.

Creamos un fichero de 8192 bytes aleatorios de la siguiente forma:

root@cain:~# dd if=/dev/urandom of=/home/sink/key bs=1024 count=8

Luego añadimos dicho fichero como clave para LUKS:

cryptsetup luksAddKey /dev/[partición] [nombre fichero llave]

root@cain:~# cryptsetup luksAddKey /dev/sdd2 /home/sink/key

Volvemos a cerrar la partición:

root@cain:~# cryptsetup luksClose /dev/mapper/Backups

Y podéis hacer la comprobación abriendo la partición con el fichero que acabamos de crear en lugar de usar el passphrase.

cryptsetup luksOpen /dev/[partición] [nombre lógico] --key-file [ruta al fichero llave]

root@cain:~# cryptsetup luksOpen /dev/sdd2 Backups --key-file /home/sink/key

Con esto acabamos la primera parte: el cifrado de datos.

Pasamos a usar rsync, aquí solo mostraré el comando y los parámetros que uso actualmente.

rsync -aur [ruta a copiar] /media/Backups

Os invito a leer la página man y seleccionar los parámetros que mejor se adapten a vuestro entorno.

Finalmente llegamos a crontab, nos encontramos con varios problemas:

1. cryptsetup necesita privilegios de root para poder montar/desmontar, etc.
2. mount también necesita esos privilegios.
3. Quiero lanzar la copia con mi usuario y desde mi crontab.
4. Son varios comandos y nos puede resultar incómodo hacerlo todo desde crontab.

Solución:

1. Crearemos un script con todos los comandos que necesiten privilegios de root.
2. Crearemos un segundo script que no requerirá de privilegios que llamará al primero.
3. Modificaremos /etc/sudoers para que no nos pida contraseña de sudo.
4. Programaremos crontab.

1.El primer script:

----------
#!/bin/bash

# Alberto A. (Sink) 06/2013
# http://elmagodelosbits.blogspot.com.es/
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
 
# Abre la partición con el fichero llave
cryptsetup luksOpen /dev
/disk/by-uuid/xxxx-xxxx Backups --key-file /root/key
# Monta la partición
mount
/dev/mapper/Backups /media/Backups
# Realiza la copia de seguridad
rsync -aur [...] && rsync -aur [...]
# Desmonta la partición
umount
/media/Backups
# Cierra la partición
cryptsetup luksClose Backups
----------

Dónde "xxxx-xxxx" corresponde al UUID de tu partición cifrada. Si no sabes cómo, puedes usar el comando:

ls -al /dev/disk/by-uuid

Recomiendo usar el montaje mediante UUID para evitar líos cuando añadamos nuevos dispositivos de almacenamiento.

Podéis observar que es muy sencillo. Guardamos el fichero.

Copiamos el script y el fichero llave en un directorio bajo /root, acordaos de modificar la partición y demás para ajustarlo a vuestra configuración.

En mi caso éstos son los permisos que he asignado:


-rwx------ 1 root root  765 jun 23 20:07 crypt.sh
-r--r--r-- 1 root root 4096 jun 23 20:03 key

Ahora creamos el segundo script que simplemente llama al primero.

 ----------
#!/bin/bash

sudo "/root/crypt.sh"

exit 0
----------

Este lo dejamos en el sitio que queramos, bajo nuestro usuario.

Toca modificar el fichero /etc/sudoers para que no nos pida la contraseña cuando se ejecute el crontab:

root@cain:~# nano /etc/sudoers

Buscamos la línea que pone:

%sudo   ALL=(ALL:ALL) ALL

y DEBAJO añadimos:

tu_usuario    ALL=(ALL) NOPASSWD:/root/crypt.sh

Evidentemente, cambiando "tu_usuario" por el usuario real que uses.

Grabamos los cambios y programamos el crontab:

sink@cain:~$ crontab -e

Añadimos la hora, frecuencia y demás información necesaria y listo, ya tenemos nuestra copia de seguridad cifrada.

En mi caso lo he programado que haga dos copias al día, una a las 18:30 y otra a las 01:45.

30 18 * * * sh /home/sink/backup.sh
45 01 * * * sh /home/sink/backup.sh

No he realizado ningún cambio en /etc/crypttab, ni en /etc/fstab, puesto que solo me interesa que la partición esté montada durante la copia. Si quieres que te pida la passphrase o se monte automáticamente usando un fichero llave en el arranque (por ejemplo si tienes cifrada tu partición del portátil), debes añadir una línea a /etc/crypttab

[nombre lógico] [/dev/partición] [fichero llave] [options]

Que, en mi caso, si quiero que me pida la passphrase, traducido resulta:

Backups /dev/sdd2 none luks

Y si, en cambio, quiero usar el fichero llave (recordad que el fichero llave debe estar fuera de una partición cifrada, por ejemplo, un pendrive).

Backups /dev/sdd2 /media/pendrive/key luks

Si tienes alguna duda, plantéala en los comentarios.

¡Eso es todo por hoy!

viernes, 7 de junio de 2013

Driver para impresora Epson Stylus serie DX4000 para GNU/Linux

Si no consigues imprimir con esta impresora en tu GNU/Linux probablemente se deba a que los drivers no estén instalados, ya sea porque no vengan con tu distribución, lo hayas eliminado o estén obsoletos.

Si entras en la pestaña de impresoras de la interfaz web de CUPS (http://localhost:631/printers/) probablemente veas un mensaje como este:

Archivo "/usr/lib/cups/filter/commandtoepson" no disponible: No such file or directory

Por lo tanto solo debes instalar el paquete "printer-driver-guterprint" (y "gutenprint-locales" para tener los menús en español).

root@cain:~# apt-get install printer-driver-guterprint gutenprint-locales

El demonio CUPS se reiniciará automáticamente y ya deberías poder empezar a imprimir.

jueves, 30 de mayo de 2013

Comando para cambiar el idioma del teclado en GNU/Linux por terminal

Para aquellos que necesiten cambiar rápidamente el idioma del teclado, os dejo un comando para hacerlo, eso sí, tened en cuenta que si reiniciáis la computadora, tendréis que repetir el proceso.

setxkbmap [idioma]

sink@cain:~$ setxkbmap es

De todas maneras, os recomiendo que echéis un vistazo al manual pues tiene opciones que os pueden resultar útiles.

sink@cain:~$ man setxkbmap

Finalmente, si por algún motivo os sale el error:

bash: setxkbmap: no se encontró la orden

Debeis instalar el paquete x11-xkb-utils:

sink@cain:~$ sudo apt-get install x11-xkb-utils

domingo, 26 de mayo de 2013

Potential PulseAudio version problem - VLC

Llevaba un tiempo con este error que producía que el audio de los vídeos que reproducía en VLC se desincronizaran.

El entorno es el siguiente:

VLC 2.0.6 Twoflower
Pulseaudio 2.0
Debian GNU/Linux jessie/sid 3.2.0-4-amd64
Tarjeta de sonido: Asus Xonar D2

El error:

Figura 1. Error en VLC

Potential PulseAudio version problem:
PulseAudio is streaming with an excessive latency. Sound may be lost or quality degraded.
To address that issue, upgrade the PulseAudio daemon to version 3.0, or disable the alternate sampling rate in its configuration.

La solución:

Modificaremos el fichero /etc/pulse/daemon.conf

sink@cain:~$ sudo nano /etc/pulse/daemon.conf

Buscamos la línea

;default-sample-rate = 44100

Y la modificamos para dejarla así:

default-sample-rate = 48000

Guardamos y reiniciamos PulseAudio.

sink@cain:~$ sudo service pulseaudio restart

Tras esto, el error queda solucionado.

martes, 21 de mayo de 2013

Controlar la velocidad de giro de un lector óptico - hdparm

Si bien los dispositivos de almacenamiento externo, como pendrives USB o discos duros externos, han ocasionado que los dispositivos ópticos, como los DVD, se usen menos, aun es un medio de almacenamiento popular, especialmente debido a los BluRay.

¿Alguna vez te has propuesto escuchar un disco de música y el disco gira tan rápido que no te permite escucharlo cómodamente? Pues con hdparm podemos controlar eso.

La sintaxis del comando es la siguiente:

hdparm -E [velocidad] [ruta a dispositivo lector]

La velocidad debe ser un valor numérico como: 2, 4, 8, 16, etc...

La ruta al dispositivo lector puede variar según la configuración de tu equipo, pero suele ser: /dev/cdrom

Para terminar un ejemplo que reducirá la velocidad a 4x:

root@cain:~# hdparm -E 4 /dev/cdrom

Si tras realizar esta operación la reproducción comienza a cortarse, debes aumentar la velocidad.

lunes, 20 de mayo de 2013

Script bash para descargar números de la revista digital Linux Magazine

Hace tiempo que sigo esa revista, pero como los artículos están separados en ficheros pdf independientes, se volvía pesado descargar uno a uno y leerlos en algún dispositivo, tablet o ereader, debido a tener 20 ficheros distintos.

Por ello decidí crear el siguiente script, basado en el que nos ofrecen en la propia web de Linux Magazine, con el que podéis descargar los números que os interesen y unir todos los artículos en un solo fichero pdf.

----------

#!/bin/sh

# Alberto A. (Sink) 05/2013
# http://elmagodelosbits.blogspot.com.es/
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>


# Introduce los números que te interesan separados por un espacio o usa la siguiente expresión para descargar un rango de números.
# Ejemplos:

# Descargar el número 13 de la revista: for numero in 13; do
# Descargar los números 13 y 25 de la revista: for numero in 13 25; do
# Descargar todos los números entre el 13 y el 25, ambos incluidos: for numero in `seq 13 25`; do

# DEPENDENCIAS:

# 1. Es necesario instalar "pdftk"

# ADVERTENCIAS:
# 1. La descarga se realizará en la misma carpeta en la que se encuentre el script.
# 2. El orden de unión de los ficheros .pdf de los números 1 a 25 no será correcto, pues el nombre de los ficheros originales no están numerados.


for numero in `seq 1 82`; do



# Añade un "0" si el valor es menor o igual a 9
  if [ $numero -le 9 ]; then
    x="0"$numero
  fi
 
  # Crea una carpeta para la revista elegida
  mkdir
"Linux Magazine
$numero"
  cd "Linux Magazine
$numero"
  # Descarga todos los artículos del número de revista elegido
  wget --recursive --no-parent -A pdf http://www.linux-magazine.es/issue/
$numero/
  mv www.linux-magazine.es/issue/
$numero/*.pdf ../"Linux Magazine $numero"/
  # Añade todos los .pdf de un número de la revista en un solo fichero

  pdftk *.pdf output "Linux Magazine $numero.pdf" 
  # Elimina ficheros sobrantes de la descarga
  rm -r www.linux-magazine.es/
  cd ..

done

exit
0



----------

Es mejorable, pero por ahora lo dejo así. Espero que os sea útil.