Cómo actualizar automáticamente la blocklist de transmission

Cómo actualizar automáticamente el blocklist de Transmission en Linux

A mí es uno de los gestores que más me gustan, precisamente por la versatilidad y funciones que tiene. Esta vez verás cómo mantener actualizado el blocklist de transmission de forma automática.

De por sí, una vez que sabes como instalar y configurar transmission en linux, puede parecer que ya está todo listo. Nada más lejos de la realidad, pues aunque sepas configurar la lista de bloqueos, esta no se pondrá en marcha sola si lo instalas como servicio en linux.

Cómo auto actualizar la blocklist de Transmission

Una lista de bloqueo o blocklist, es una lista en un formato determinado pensada para bloquear la conexión con ciertos pares. Normalmente lo que se quiere evitar es conectar con pares peligrosos, o que puedan enviar partes de archivos con el fín de infectar tu equipo.

La blocklist de transmission es muy fácil de configurar, pues bastará con poner la dirección en la configuración de este, pero al final siempre te toca actualizarla a mano. A pesar de no tener que hacerlo muchas veces, es bastante fácil que se te olvide.

En transmission funciona de una manera bastante sencilla. Basta con dejar la lista en la carpeta blocklists, y al ejecutarse transmission este la volcará a un archivo .bin preparado. Este archivo transmission lo codifica de tal forma que es mucho más rápido encontrando las coincidencias, y por tanto también consume menos recursos.

Pero vamos al tema que nos ocupa.

Cómo descargar un blocklist para transmision manualmente

En este caso ya debes tener la dirección del blocklist que mejor te convenga, hay varios en github así que dependiendo para qué lo vayas a usar puedes escoger uno u otro (por ejemplo la de wael o bitsurge).

Léete también  Cómo solucionar logrotate 100% CPU en linux

Lo primero será acceder a la carpeta del blocklist (una vez conectados por ssh o abriendo un terminal).

cd /var/lib/transmission-daemon/info/blocklists/

Ahora toca descargar la lista de la url que tienes:

wget 

La descomprimirás para que la pueda interpretar transmission

gunzip list.gz

Y por último solo queda reiniciar el servidor

/etc/init.d/transmission-daemon reload

Una vez terminado si haces un ls -l, verás que se ha generado el archivo .bin, que será el que utiliza transmission para saber con quién conectar y con quién no.

Cómo automatizar el blocklist de transmission

Pero esto sería un coñazo si lo tienes que hacer cada vez que quieres actualizar las listas de bloqueo, por lo que vas a optar por la opción B. En este caso simplemente creamos un archivo ejecutable, con unas líneas que se encargarán de descargar, descomprimir el archivo y reiniciar el servidor.

Dependiendo de la frecuencia con la que quieras actualizar puedes crearlo en uno de los directorios del cron en lugar de en home:

  • /etc/cron.daily
  • /etc/cron.weekly
  • /etc/cron.monthly

Aunque yo prefiero crear el archivo actualizar-listas.sh en la  home y luego automatizarla:

nano /home/actualizar-listas.sh

---->contenido

#!/bin/bash

# carpeta de los blocklist
BLOCKLISTDIR=/var/lib/transmission-daemon/info/blocklists

cd ${BLOCKLISTDIR}
if [ $? -eq 0 ]; then
  if [ -f list ]; then
    rm level1
  fi
  # if no blocklist file exist update blocklist
  if [ ! -f list ]; then
    # descargamos la lista en formato .gz
    wget -q -O list.gz 
    # si se descarga lo descomprimimos
    if [ -f list.gz ]; then
          gunzip list.gz
          # si se ha descomprimido bien, reinicia transmission
          if [ $? -eq 0 ]; then
            chmod go+r list
            /etc/init.d/transmission-daemon reload
          else
                rm -f list*
          fi
        fi
  fi
  cd - 2>&1 >/dev/null
fi

Hazlo ejecutable para evitar problemas con este comando:

chmod +x /home/actualizar-listas.sh

Y ahora lo añadiremos a la tabla con con

crontab -e

Añade esta línea al final:

1 1 * * 0 /home/actualizar-listas.sh

En este caso se ejecutaría a la 1 de la madrugada los domingos, pero los asteriscos indican cuando ejecutarlo por orden de izquierda a derecha de esta forma:

Léete también  Qué es NFC y para qué sirve

formato-crontab

  • minuto (0-59)
  • hora (0-23)
  • día del mes (1-31)
  • mes (1-12)
  • día de la semana (0-6)

Si quieres que se ejecute cada vez que inicies el equipo o raspberry, basta con sustituir los asteriscos por @reboot:

@reboot /home/actualizar-listas.sh

Y una vez configurado basta con que reinicies el cron:

/etc/init.d/crontab restart

¿Puedo tener varios blocklist en transmission?

Por supuesto, basta con que te busques varias listas y te crees un script para cada una de ellas. También puedes añadir las líneas de descarga y descompresión en uno solo y los descargará todos a la vez.

De esta forma tendrías un poco menos de control sobre cuando se ejecutan, ya que no todos se actualizan con la misma frecuencia. Yo prefiero tener una lista en cada uno.

Si te ha quedado alguna duda, o no consigues hacer que te funcione, no te lo pienses y déjame un comentario, te echaré un cable encantado.

¿Usas transmission? ¿En qué sistema operativo? Comenta y comparte


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.